Verwenden Sie die Pivot -Funktion des SQL Servers zur Umstrukturierung von Daten
Die leistungsstarke SQL Server-Funktion PIVOT
bietet eine optimierte Möglichkeit, Daten von einer zeilenbasierten Struktur in eine spaltenbasierte zu transformieren. Dies ist besonders nützlich, um einfacher lesbare und analysierte tabellarische Berichte zu erstellen.
Stellen Sie sich eine Tabelle mit Speichernummern, Wochennummern und einem Wert vor (nennen wir sie xCount
). Ziel ist es, diese Daten neu zu organisieren, damit die Speichernummern vertikal (Zeilen) und Wochennummern horizontal (Spalten) aufgeführt sind.
statischer Drehzahl (bekannte Woche Nummern):
Wenn Sie bereits die spezifischen Wochennummern kennen, die Sie benötigen
PIVOT
<code class="language-sql">SELECT * FROM ( SELECT store, week, xCount FROM yt ) src PIVOT (SUM(xcount) FOR week IN ([1], [2], [3])) piv;</code>
-Anklausel gibt die Wochen an ([1], [2], [3] in diesem Beispiel). xCount
IN
Wenn die Wochenzahlen dynamisch sind (vorher nicht bekannt), ist ein flexiblerer Ansatz erforderlich:
Diese dynamische Abfrage erstellt zunächst eine von Kommas getrennte Liste der eindeutigen Wochennummern aus der Tabelle
<code class="language-sql">DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX) SELECT @cols = STUFF((SELECT ',' + QUOTENAME(Week) FROM yt GROUP BY Week ORDER BY Week FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'') SET @query = 'SELECT store,' + @cols + ' FROM ( SELECT store, week, xCount FROM yt ) x PIVOT ( SUM(xCount) FOR week IN (' + @cols + ') ) p ' EXECUTE(@query);</code>
die gewünschte spaltenbasierte Ausgabe erstellt. Das Ergebnis ist eine Pivot -Tabelle, die Speicher als Zeilen und Wochen als Spalten mit entsprechenden yt
-Werten zeigt. Diese Methode passt an eine beliebige Anzahl von Wochen in den Daten. PIVOT
Das obige ist der detaillierte Inhalt vonWie konvertiert man Zeilen in SQL Server mithilfe von PIVOT in Spalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!