如何使用PIVOT 轉置SQL Server 資料
SQL Server 中的PIVOT 運算子允許您將行轉換為列,將資料從垂直方向的形式變成水平方向的形式。當尋求基於多個屬性匯總資料時,這非常有用。
範例資料和所需輸出
考慮以下起始資料集:
SELECT Name1, Name2, Value FROM mytable Name1 | Name2 | Value ------- ------- ------ A | P1 | 1 A | P2 | 1 A | P3 | 2 B | P1 | 3 B | P2 | 1 B | P4 | 1
所需的輸出是旋轉數據,以便 PIVOT 運算子將 Name1 列值轉換為列標題,並且 Value 列中的值由 Name2 列匯總。
在SQL Server 2005 中使用PIVOT 轉置資料
對於SQL Server 2005,PIVOT 運算子可用於下列方式:
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 )
此查詢根據 Name1 欄位中的不同值動態產生 PIVOT 查詢,組合列標題並對應地匯總資料。最終,結果是所需格式的轉置資料:
P1 P2 P3 P4 ------- ------- ------- ------- 1 1 2 NULL 3 1 NULL 1
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3