SQL Server

SQLでPIVOTを使って行と列を入れ替える(縦横変換する)方法

SQLServerのT-SQLではPIVOTを利用すると、簡単に行と列を入れ替える(縦横変換)ことができます。

本来であれば複雑な福問合せなどを駆使して実現するのですがPIVOT句を使うことで通常のSELECT文と変わらない構文で行と列を入れ替え(縦横変換)られます。

SQL ServerのPIVOT

PIVOTは、テーブル値式の中のある列から一意の値を取得して出力側の複数の列に変換することで式を行列(縦横)変換し、最終的な出力のそれ以外の列値に必要な集計を行います。

PIVOTの構文は以下の通りです。

PIVOTの使用例

準備として1行「name」と「subject」、「tokuten」を持ったテーブルを用意し、そのデータを人ごとに各科目の得点を1行として出力します。

実際のSQLは以下の通りです。

上記のSQLを実行した実行結果は以下のようになります。

name English Japanese Mathematics Science SocialStudies
John 20 30 40 50 60
Mike 100 90 80 70 60
Tom 50 40 30 20 10

スポンサーリンク

-SQL Server
-

Copyright© ソフトウェア開発日記 , 2019 All Rights Reserved.