首頁 >資料庫 >mysql教程 >如何使用 PIVOT 運算子在 SQL Server 中轉置資料?

如何使用 PIVOT 運算子在 SQL Server 中轉置資料?

DDD
DDD原創
2024-12-25 04:58:20403瀏覽

How to Transpose Data in SQL Server Using the PIVOT Operator?

如何使用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 )
此查詢根據中的不同值動態產生PIVOT 查詢命名 1列,組合列標題並相應地匯總資料。最終,結果是所需格式的轉置資料:

以上是如何使用 PIVOT 運算子在 SQL Server 中轉置資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn