Heim >Datenbank >MySQL-Tutorial >Wie transponiere ich eine Tabelle mit mehreren Spalten in SQL Server?
Mehrspaltige Pivot-Methode von SQL Server
Das Konvertieren einer Tabelle in ihre transponierte Form ist in verschiedenen Situationen nützlich. Dieser Artikel konzentriert sich auf die Transponierung einer Tabelle mit mehreren Spalten (A, B usw.) in Microsoft SQL Server.
Pivot-Daten mit UNPIVOT und PIVOT
Um eine Tabelle zu transponieren, können Sie die Funktionen UNPIVOT und PIVOT zusammen verwenden:
Ein Beispiel ist wie folgt:
<code class="language-sql">select * from ( select day, col, value from yourtable unpivot ( value for col in (A, B) ) unpiv ) src pivot ( max(value) for day in (Mon, Tue, Wed, Thu, Fri) ) piv;</code>
CROSS APPLY- und VALUES-Methoden für SQL Server 2008 und höher
Für SQL Server 2008 und höher können Sie auch CROSS APPLY in Kombination mit VALUES verwenden, um die Daten zu entpacken:
<code class="language-sql">select * from ( select day, col, value from yourtable cross apply ( values ('A', ACalls),('B', BCalls) ) c (col, value) ) src pivot ( max(value) for day in (Mon, Tue, Wed, Thu, Fri) ) piv;</code>
Bewerben Sie sich auf Ihre Anfrage
Wenn Sie die Ergebnisse der aktuellen Abfrage transponieren möchten, können Sie eine ähnliche Methode verwenden:
<code class="language-sql">select * from ( select LEFT(datename(dw,datetime),3) as DateWeek, col, value from DataTable cross apply ( values ('A', ACalls), ('B', BCalls) ) c (col, value) ) src pivot ( sum(value) for dateweek in (Mon, Tue, Wed, Thu, Fri) ) piv;</code>
Dadurch werden die Spalten „ACalls“ und „BCalls“ in Zeilen transponiert und Spaltenüberschriften für jeden Wochentag (Mo, Di usw.) erstellt.
Das obige ist der detaillierte Inhalt vonWie transponiere ich eine Tabelle mit mehreren Spalten in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!