So transponieren Sie SQL Server-Daten mithilfe von PIVOT
Mit dem PIVOT-Operator in SQL Server können Sie Zeilen in Spalten konvertieren und 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 schwenken, dass der PIVOT-Operator die Werte der Spalte „Name1“ in Spaltenüberschriften umwandelt und die Werte aus der Spalte „Wert“ in der Spalte „Name2“ zusammengefasst werden.
Transponieren von Daten mit PIVOT in SQL Server 2005
Für SQL Server 2005 kann der PIVOT-Operator verwendet werden auf folgende Weise:
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“, wobei die Spaltenüberschriften zusammengestellt und die Daten entsprechend zusammengefasst werden. Das Ergebnis sind letztendlich die transponierten Daten im gewünschten Format:
P1 P2 P3 P4 ------- ------- ------- ------- 1 1 2 NULL 3 1 NULL 1
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3