Heim > Datenbank > MySQL-Tutorial > Wie kann ich eine Tabelle drehen und Spalten in SQL Server verketten?

Wie kann ich eine Tabelle drehen und Spalten in SQL Server verketten?

Mary-Kate Olsen
Freigeben: 2025-01-02 17:04:40
Original
759 Leute haben es durchsucht

How to Pivot a Table and Concatenate Columns in SQL Server?

Pivot-Tabelle und Spaltenverkettung

Frage:

Wie kann ich eine Datenbanktabelle transformieren? mit folgender Struktur:

ID    TYPE   SUBTYPE    COUNT   MONTH
 1      A      Z          1       7/1/2008
 1      A      Z          3       7/1/2008
 2      B      C          2       7/2/2008
 1      A      Z          3       7/2/2008
Nach dem Login kopieren

in eine Tabelle mit folgendem Struktur:

ID    A_Z   B_C   MONTH
1     4     0     7/1/2008
2     0     2     7/2/2008
1     0     3     7/2/2008
Nach dem Login kopieren

wobei TYPE und SUBTYPE verkettet werden, um neue Spalten zu bilden (z. B. „A_Z“), und COUNT für übereinstimmende ID- und MONTH-Werte summiert wird?

Antwort :

SQL Server 2005 bietet einen PIVOT-Operator, der die im beschriebene Transformation ermöglicht Frage. Hier ist eine detaillierte Erklärung:

  1. Pivot-Code generieren: Bestimmen Sie die unterschiedlichen Kombinationen von TYPE- und SUBTYPE-Werten. Zum Beispiel ['A_Z'].
  2. Dynamisches SQL erstellen: Verwenden Sie dynamisches SQL, um eine Abfrage zu generieren, die den PIVOT-Operator enthält.
DECLARE @sql AS varchar(max);
SET @sql = '
;WITH p AS (
    SELECT ID, [MONTH], [TYPE] + ''_'' + SUBTYPE AS PIVOT_CODE, SUM(COUNT) AS [COUNT]
    FROM stackoverflow_159456
    GROUP BY ID, [MONTH], [TYPE] + ''_'' + SUBTYPE
)
SELECT ID, [MONTH], ' + @select_list + '
FROM p
PIVOT (
    SUM(COUNT)
    FOR PIVOT_CODE IN (
        ' + @pivot_list + '
    )
) AS pvt
';
Nach dem Login kopieren
  1. Dynamisches SQL ausführen: Führen Sie die generierte SQL-Abfrage aus, um das gewünschte Ergebnis zu erhalten Ausgabe.

Diese Lösung nutzt dynamisches SQL, um die PIVOT-Abfrage basierend auf den eindeutigen Kombinationen von TYPE- und SUBTYPE-Werten zu erstellen und bietet so einen wartungsfreien Ansatz für die Handhabung mehrerer Typen und Untertypen in der Datenbank.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Tabelle drehen und Spalten in SQL Server verketten?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage