So Pivotieren mehrerer Spalten in TSQL
In TSQL umfasst das Pivotieren einer Tabelle das Neuanordnen von Zeilen in Spalten. Wenn Sie jedoch mit mehreren Spalten arbeiten, ist es wichtig, alle Beschriftungen beizubehalten.
Daten entpivotieren
Da wir über mehrere Datenspalten verfügen, wird zunächst empfohlen, deren Pivotierung aufzuheben in eine einzelne Spalte. Dies kann je nach SQL Server-Version entweder mit der UNPIVOT-Funktion oder der CROSS APPLY-Methode erreicht werden. Die Syntax zum Aufheben der Pivotierung wäre:
select ratio, col, value from GRAND_TOTALS cross apply ( select 'result', cast(result as varchar(10)) union all select 'score', cast(score as varchar(10)) union all select 'grade', grade ) c(col, value)
Durchführen der Pivotierung
Sobald die Pivotierung der Daten aufgehoben ist, können Sie die PIVOT-Funktion anwenden, um die Spalten wie gewünscht neu anzuordnen. Die Syntax wäre:
select ratio = col, [current ratio], [gearing ratio], [performance ratio], total from ( select ratio, col, value from GRAND_TOTALS cross apply ( select 'result', cast(result as varchar(10)) union all select 'score', cast(score as varchar(10)) union all select 'grade', grade ) c(col, value) ) d pivot ( max(value) for ratio in ([current ratio], [gearing ratio], [performance ratio], total) ) piv;
Ergebnis
Dies erzeugt die gewünschte Ausgabe:
| RATIO | CURRENT RATIO | GEARING RATIO | PERFORMANCE RATIO | TOTAL | |--------|---------------|---------------|-------------------|-----------| | grade | Good | Good | Satisfactory | Good | | result | 1.29400 | 0.33840 | 0.04270 | (null) | | score | 60.00000 | 70.00000 | 50.00000 | 180.00000 |
Das obige ist der detaillierte Inhalt vonWie können mehrere Spalten in T-SQL effizient geschwenkt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!