So transponieren Sie SQL Server-Daten mithilfe von PIVOT
Mit dem PIVOT-Operator in SQL Server können Sie Zeilen in Spalten konvertieren und so Daten aus einem vertikal ausgerichtete Form in eine horizontal ausgerichtete Form umwandeln. Dies kann nützlich sein, wenn Sie Daten basierend auf mehreren Attributen zusammenfassen möchten.
Beispieldaten und gewünschte Ausgabe
Betrachten Sie den folgenden Startdatensatz:
SELECT Name1, Name2, Value FROM mytable Name1 | Name2 | Value -------+-------+------ A | P1 | 1 A | P2 | 1 A | P3 | 2 B | P1 | 3 B | P2 | 1 B | P4 | 1
Die gewünschte Ausgabe besteht darin, die Daten so zu drehen, dass der PIVOT-Operator die Werte der Spalte „Name1“ in Spaltenüberschriften umwandelt und die Werte aus der Spalte „Wert“ es sind zusammengefasst durch die Spalte Name2.
Transponieren von Daten mit PIVOT in SQL Server 2005
Für SQL Server 2005 kann der PIVOT-Operator auf folgende Weise verwendet werden:
DECLARE @cols VARCHAR(1000) DECLARE @sqlquery VARCHAR(2000) SELECT @cols = STUFF(( SELECT distinct ',' + QuoteName([Name1]) FROM myTable FOR XML PATH('') ), 1, 1, '') SET @sqlquery = 'SELECT * FROM (SELECT Name2, Name1, Value FROM myTable ) base PIVOT (Sum(Value) FOR [Name1] IN (' + @cols + ')) AS finalpivot' EXECUTE ( @sqlquery )
Diese Abfrage generiert dynamisch eine PIVOT-Abfrage basierend auf den unterschiedlichen Werten in der Spalte „Name1“ und fügt sie zusammen die Spaltenüberschriften und fassen die Daten entsprechend zusammen. Das Ergebnis sind letztendlich die transponierten Daten im gewünschten Format:
P1 P2 P3 P4 -------+-------+-------+------- 1 1 2 NULL 3 1 NULL 1
Das obige ist der detaillierte Inhalt vonWie transponiere ich Daten in SQL Server mithilfe des PIVOT-Operators?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!