Heim >Datenbank >MySQL-Tutorial >Wie erreicht man dynamisches Pivotieren von Tabellendaten in T-SQL?

Wie erreicht man dynamisches Pivotieren von Tabellendaten in T-SQL?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-14 20:20:45800Durchsuche

How to Achieve Dynamic Pivoting of Tabular Data in T-SQL?

Dynamischer Pivot in T-SQL

Die Konvertierung tabellarischer Daten in ein prägnanteres Format ist für die Datenanalyse und Berichterstellung von entscheidender Bedeutung. Eine häufig verwendete Technik ist das Pivotieren, bei dem Zeilen in Spalten umgewandelt werden. In diesem Beispiel besteht unser Ziel darin, Daten aus einer Tabelle mit einer Struktur ähnlich der folgenden zu Pivotieren:

ItemID ColumnName Value
1 name Peter
1 phone 12345678
1 email [email protected]
2 name John
2 phone 87654321
2 email [email protected]
3 name Sarah
3 phone 55667788
3 email [email protected]

In eine benutzerfreundlichere Struktur konvertieren:

ItemID name phone email
1 Peter 12345678 [email protected]
2 John 87654321 [email protected]
3 Sarah 55667788 [email protected]

Um dies in T-SQL mithilfe dynamischer Pivots zu erreichen, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie eine dynamische Spaltenliste:

    <code class="language-sql"> DECLARE @cols NVARCHAR(2000)
     SELECT  @cols = STUFF(( SELECT DISTINCT TOP 100 PERCENT
                                      '],[' + t.ColumnName
                              FROM    #Table AS t
                              FOR XML PATH('')
                            ), 1, 2, '') + ']' </code>
  2. Erstellen Sie eine dynamische Abfrage:

    <code class="language-sql"> DECLARE @query NVARCHAR(4000) 
     SET @query = N'SELECT ID,'+ @cols +' FROM 
     (SELECT t1.ID,t1.ColumnName , t1.Value FROM #Table AS t1) p 
     PIVOT (MAX([Value]) FOR ColumnName IN ( '+ @cols +' )) 
     AS pvt;' </code>
  3. Abfrage ausführen:

    <code class="language-sql"> EXECUTE(@query)</code>

Die generierte Abfrage dreht die Daten dynamisch und erstellt so eine kompaktere und leichter lesbare Tabellenstruktur.

Dieser Ansatz bietet einen flexiblen Mechanismus zum Pivotieren von Daten, insbesondere wenn Spaltennamen dynamisch sind oder sich ändern können. Es ermöglicht eine effiziente und automatisierte Datentransformation und ist damit ein leistungsstarkes Werkzeug für eine Vielzahl von Datenanalyse- und Berichtsanwendungen.

Das obige ist der detaillierte Inhalt vonWie erreicht man dynamisches Pivotieren von Tabellendaten in T-SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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