Heim >Datenbank >MySQL-Tutorial >Wie transponiere ich Daten in SQL Server mithilfe des PIVOT-Operators?

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

DDD
DDDOriginal
2024-12-25 04:58:20403Durchsuche

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 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!

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