„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie transponiere ich Daten in SQL Server mithilfe des PIVOT-Operators?

Wie transponiere ich Daten in SQL Server mithilfe des PIVOT-Operators?

Veröffentlicht am 23.12.2024
Durchsuche:467

How to Transpose Data in SQL Server Using the PIVOT Operator?

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
Neuestes Tutorial Mehr>

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