如何在 TSQL 中透視多個欄位
在 TSQL 中,透視表涉及將行重新排列為列。但是,在處理多列時,保留所有標籤至關重要。
逆透視資料
首先,由於我們有多個資料列,建議將它們逆透視成一列。這可以使用 UNPIVOT 函數或 CROSS APPLY 方法來實現,具體取決於 SQL Server 版本。取消透視的語法為:
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)
執行透視
資料取消透視後,您可以套用 PIVOT 函數依需求重新排列列。語法為:
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;
結果
這將產生所需的輸出:
| 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 |
以上是如何在 T-SQL 中有效率地透視多個欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!