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
これにより、行を列に置き換える機能が実現されました。