Heim > Datenbank > MySQL-Tutorial > Wie konvertiert man Zeilen in SQL Server mithilfe von PIVOT in Spalten?

Wie konvertiert man Zeilen in SQL Server mithilfe von PIVOT in Spalten?

DDD
Freigeben: 2025-01-25 12:22:10
Original
290 Leute haben es durchsucht

How to Convert Rows to Columns in SQL Server Using PIVOT?

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

Diese Abfrage fasst die
<code class="language-sql">SELECT *
FROM (
  SELECT store, week, xCount
  FROM yt
) src
PIVOT (SUM(xcount) FOR week IN ([1], [2], [3])) piv;</code>
Nach dem Login kopieren
-Werte für jeden Geschäft und jede Woche zusammen. Die

-Anklausel gibt die Wochen an ([1], [2], [3] in diesem Beispiel). xCount IN

Dynamischer Drehpunkt (unbekannte Woche Nummern):

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>
Nach dem Login kopieren
. Diese Liste wird dann in eine größere Abfrage integriert, in der die Funktion

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage