在資料按行和列排列的資料庫表中,有時需要透過切換行來轉換表結構列。這種技術稱為資料透視。
場景:
您有一個範例表,其中包含 Branch、Category、Sales、Stock 和 Target 等欄位。您希望使用「類別」列對錶進行透視,並將其餘列(銷售額、庫存、目標)排列為行。所需的輸出應將類別作為列,並將值作為行。
解決方案:
要對表進行透視,您可以使用多個PIVOT 語句並進行適當的列名稱修改:
SELECT * FROM ( SELECT Branch, Category, Category+'1' As Category1, Category+'2' As Category2, Sales, Stock, Target FROM TblPivot ) AS P -- For Sales PIVOT ( SUM(Sales) FOR Category IN ([Panel], [AC], [Ref]) ) AS pv1 -- For Stock PIVOT ( SUM(Stock) FOR Category1 IN ([Panel1], [AC1], [Ref1]) ) AS pv2 -- For Target PIVOT ( SUM(Target) FOR Category2 IN ([Panel2], [AC2], [Ref2]) ) AS pv3 GO
透過修改列名稱(例如類別「1」和類別「2」),您可以確保PIVOT 語句正確運作。
中間表(pv1、pv2、pv3)將分別提供 Sales、Stock 和 Target 的透視資料。然後,您可以根據需要聚合 pv3 的結果來對值進行分組和求和。
以上是如何使用多個 PIVOT 語句在 SQL Server 中透視多個欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!