Heim >Datenbank >MySQL-Tutorial >Wie transponiere ich Zeilen in DB2 mithilfe von PIVOT (implizit) in Spalten?

Wie transponiere ich Zeilen in DB2 mithilfe von PIVOT (implizit) in Spalten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-30 13:27:16616Durchsuche

How to Transpose Rows into Columns in DB2 Using PIVOT (Implicit)?

Datenstruktur mit Pivotierung in DB2 transponieren

Die Aufgabe erfordert das Transponieren von Zeilen in Spalten in einer DB2-Tabelle, wobei die Daten aus der folgenden Struktur transformiert werden :

ItemID    Item    Value
---------------------
1     Meeting     Now
1     Advise      Yes
1     NoAdvise    No
2     Meeting     Never
2     Advise      No
2     NoAdvise    Null
2     Combine    Yes

in die gewünschte Struktur:

ItemID    Meeting  Advise   NoAdvise 
---------------------------------------
1         Now      Yes       No
2         Never    No        Null

Zu erreichen Mit dieser Transformation können Sie eine SQL-Abfrage verwenden, die den PIVOT-Operator verwendet, der die Transposition von Zeilen in Spalten basierend auf einem angegebenen Kategorisierungsfeld ermöglicht. Hier ist ein Beispiel für eine Abfrage, die in DB2 LUW verwendet werden kann:

SELECT 
  A.ItemID,
  MAX(CASE WHEN A.Item = 'Meeting'  THEN Value END) AS Meeting,
  MAX(CASE WHEN A.Item = 'Advise'   THEN Value END) AS Advise,
  MAX(CASE WHEN A.Item = 'NoAdvise' THEN Value END) AS NoAdvise
FROM A
GROUP BY A.ItemID

In dieser Abfrage wird der PIVOT-Operator nicht explizit verwendet, sondern wird implizit durch die Verwendung der CASE-Anweisung innerhalb des MAX erreicht () Aggregatfunktion. Die CASE-Anweisung dient dazu, die Zeilen zu kategorisieren und den Maximalwert für jede Kategorie zurückzugeben. Die Aggregatfunktion MAX() stellt dann sicher, dass für jede Kategorie der Maximalwert zurückgegeben wird.

Beachten Sie, dass die Spalte „Kombinieren“ gemäß der Anforderung nicht im transponierten Ergebnis enthalten ist. Die resultierenden Daten werden nach Wunsch in Spalten transponiert.

Das obige ist der detaillierte Inhalt vonWie transponiere ich Zeilen in DB2 mithilfe von PIVOT (implizit) in Spalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn