Heim > Datenbank > MySQL-Tutorial > Wie können Daten in SQL Server mit dynamischen Spalten dynamisch geschwenkt werden?

Wie können Daten in SQL Server mit dynamischen Spalten dynamisch geschwenkt werden?

DDD
Freigeben: 2024-12-31 11:47:10
Original
183 Leute haben es durchsucht

How to Dynamically Pivot Data in SQL Server with Dynamic Columns?

Dynamischer SQL Server PIVOT für dynamische Spalten

Sie haben einen Datensatz mit mehreren Spalten („Name1“ und „Name2“) und einem Wert Spalte ('Wert'). Sie möchten diese Daten in ein Pivot-Format umwandeln, in dem „Name1“ zu den Spaltenüberschriften wird und die Werte nach „Name2“ aggregiert werden.

Lösung mit dynamischem SQL (SQL Server 2005 oder höher)

Da SQL Server 2005 dynamisches SQL ermöglicht, können Sie dieses Problem lösen, indem Sie die PIVOT-Abfrage dynamisch zusammenstellen. Hier ist der Code:

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Name1])
                        FROM myTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Name2, Name1, Value
       FROM myTable ) base
       PIVOT (Sum(Value) FOR [Name1]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )
Nach dem Login kopieren

Diese Abfrage funktioniert dynamisch, unabhängig davon, wie viele eindeutige „Name1“-Werte Sie haben. Die gesammelten „Name1“-Werte werden der Variablen @cols zugewiesen, die dann zum dynamischen Erstellen der PIVOT-Klausel in der @sqlquery-Variablen verwendet wird. Die letzte Abfrage wird dann ausgeführt und erzeugt die gewünschte Ausgabe.

Zusätzliche Ressourcen:

  • [Pivotieren Sie Daten in T-SQL](https://www.mssqltips.com/sqlservertip/1355/pivot-data-in-tsql/)
  • [Wie erstelle ich eine Zusammenfassung, indem ich mit SQL eine einzelne Tabelle verbinde? Server?](https://stackoverflow.com/questions/260660/how-do-i-build-a-summary-by-joining-to-a-single-table-with-sql-server)
  • [Dynamischer PIVOT mit Dynamik Spalten](https://stackoverflow.com/questions/8248059/pivot-with-dynamic-columns-in-sql-server-2005)

Das obige ist der detaillierte Inhalt vonWie können Daten in SQL Server mit dynamischen Spalten dynamisch geschwenkt werden?. 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