Heim >Datenbank >MySQL-Tutorial >Wie kann der PIVOT-Operator von SQL Server Daten aus mehreren Spalten in ein zeilenorientiertes Format umwandeln?
Enthüllung der Geheimnisse von PIVOT in SQL Server
Oft stoßen wir auf Datensätze, deren Daten so strukturiert sind, dass sie schwierig zu analysieren sind und in einem aussagekräftigen Format präsentieren. Ein solches Szenario entsteht, wenn Daten in mehreren Spalten organisiert sind, von denen jede einen anderen Wert für eine bestimmte Kategorie darstellt. Um diese Datensätze in eine Tabelle mit Kategorien als Spalten und Werten als Zeilen umzuwandeln, können wir den PIVOT-Operator in SQL Server verwenden.
Betrachten wir ein Szenario, in dem wir eine Tabelle namens „mytable“ mit den Spalten „Name1“ haben. , „Name2“ und „Wert“. Die Daten in dieser Tabelle stellen verschiedene Werte („P1“, „P2“, „P3“, „P4“) dar, die mit unterschiedlichen Namen („A“ und „B“) verbunden sind:
Name1 Name2 Value A P1 1 A P2 1 A P3 2 B P1 3 B P2 1 B P4 1
Unser Ziel besteht darin, diese Daten in das folgende Format umzustrukturieren:
A B P1 1 4 P2 1 1 P3 2 NULL P4 NULL 1
In SQL Server 2005 können wir die dynamische Abfragekonstruktion nutzen, um diese Transformation mithilfe von PIVOT durchzuführen. Hier ist eine Schritt-für-Schritt-Anleitung:
Stellen Sie eine durch Kommas getrennte Zeichenfolge aus Spaltennamen zusammen: Führen Sie die folgende Abfrage aus, um eine Zeichenfolge zu erstellen, die alle eindeutigen „Name1“ enthält " Durch Kommas getrennte Werte:
DECLARE @cols VARCHAR(1000) SELECT @cols = STUFF(( SELECT distinct ',' + QuoteName([Name1]) FROM myTable FOR XML PATH('') ), 1, 1, '')
Konstruieren Sie die Dynamik SQL-Abfrage: Erstellen Sie eine Variable mit dem Namen @sqlquery und weisen Sie ihr die folgende Abfragevorlage zu:
DECLARE @sqlquery VARCHAR(2000) SET @sqlquery = 'SELECT * FROM (SELECT Name2, Name1, Value FROM myTable ) base PIVOT (Sum(Value) FOR [Name1] IN (' + @cols + ')) AS finalpivot'
Dieser Ansatz dynamisch Konstruiert die PIVOT-Klausel basierend auf den unterschiedlichen Werten in der Spalte „Name1“. Die PIVOT-Funktion summiert die Spalte „Wert“ für jede Kategorie „Name1“ und das Ergebnis ist eine Tabelle, in der die Werte „Name2“ als Zeilenüberschriften dienen und die Kategorien „Name1“ die Spaltenüberschriften bilden.
Im Allgemeinen Grundsätzlich kann PIVOT immer dann verwendet werden, wenn Sie Daten von einer spaltenorientierten Struktur in eine zeilenorientierte Struktur umwandeln müssen. Diese Technik kann Datenanalyse- und Präsentationsaufgaben erheblich vereinfachen.
Das obige ist der detaillierte Inhalt vonWie kann der PIVOT-Operator von SQL Server Daten aus mehreren Spalten in ein zeilenorientiertes Format umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!