Heim >Datenbank >MySQL-Tutorial >Wie transponiere ich Zeilen in DB2 mithilfe von PIVOT (implizit) in Spalten?
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!