PIVOT およびUNPIVOT
PIVOT およびUNPIVOT を使用すると、テーブル値式を別のテーブルに変更できます。
PIVOT
PIVOT は、テーブル値式の1つの列にある一意の値を出力内の複数の列に変換することにより、テーブル値式を行列変換します。PIVOT は任意の列値に対し必要に応じて集計を実行します。PIVOT 構文
"SELECT 'AverageCost' AS Cost_Sorted_By_Production_Days, [0], [1], [2], [3], [4]
FROM
(
SELECT DaysToManufacture, StandardCost
FROM Production.Product
) AS SourceTable
PIVOT
(
AVG(StandardCost)
FOR DaysToManufacture IN ([0], [1], [2], [3], [4])
) AS PivotTable;"
UNPIVOT
UNPIVOT はPIVOT とは逆に、テーブル値式の列を列値に行列変換します。UNPIVOT 構文
"SELECT VendorID, Employee, Orders
FROM
(SELECT VendorID, Emp1, Emp2, Emp3, Emp4, Emp5
FROM pvt) p
UNPIVOT
(Orders FOR Employee IN
(Emp1, Emp2, Emp3, Emp4, Emp5)
)AS unpvt;"
PIVOT およびUNPIVOT の詳細については FROM 句とJOIN、APPLY、PIVOT(Transact-SQL) を参照してください。