SQL Serverで行を列に変換する方法【ピボット/アンピボット】

SQL Server では、PIVOT 演算子を使用して行を列に変換することができます。以下はその例です。

StudentScoreという名前の表があると仮定しましょう。以下のデータが含まれています:

生徒番号科目点数1
数学
801
英語
752
数学
902
英語
85

上記のデータ行を列に変換するには、以下のSQLクエリを使用してください:

SELECT StudentID, [Math], [English]
FROM 
(SELECT StudentID, Subject, Score
 FROM StudentScore) AS SourceTable
PIVOT
(
 MAX(Score)
 FOR Subject IN ([Math], [English])
) AS PivotTable;

上記のクエリを実行すると、以下の結果が得られます。

学生ID数学英語1
80
752
90
85

これにより、行を列に置き換える機能が実現されました。

bannerAds