„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 konvertieren Sie Zeilen in Spalten im SQL -Server mit der Pivot -Funktion?

Wie konvertieren Sie Zeilen in Spalten im SQL -Server mit der Pivot -Funktion?

Gepostet am 2025-03-22
Durchsuche:338

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

Zeilen in Spalten konvertieren mit der Pivot -Funktion in SQL Server

Frage

Pivot -Tabellen im SQL -Server bieten eine leistungsstarke Möglichkeit, Daten von Zeilen auf Spalten zu transponieren. Benutzer können jedoch beim Erstellen der richtigen Abfrage Herausforderungen stellen.

Lösung

Verwenden Sie die Pivot -Funktion für bekannte Spaltenwerte:

Für vordefinierte Spaltenwerte (in diesem Fall die Anzahl der Wochen) können Sie die Pivot -Funktion direkt verwenden:

select *
from 
(
  select store, week, xCount
  from yt 
) src
pivot
(
  sum(xcount)
  for week in ([1], [2], [3])
) piv;

generieren dynamisch Perspektivespaltenwerte:

Um unbekannte Spaltenwerte (z. B. dynamische Wochen) zu handhaben, kann eine Kombination aus dynamischen SQL- und Fensterfunktionen verwendet werden:

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);

Ergebnis:

Beide Methoden erzeugen das gleiche Ergebnis:

|.

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