縦持ちのテーブルから横持ちのデータとして検索するサンプルです。
サンプル
以下のような縦持ちのテーブルをサンプルとします。
KEY | CD | VALUE |
---|---|---|
001 | cd01 | 値A |
001 | cd02 | 値B |
001 | cd03 | 値C |
002 | cd01 | 値X |
002 | cd02 | 値Y |
002 | cd03 | 値Z |
上記テーブルを横持ち型式でSELECTするSQL文
1 2 3 4 5 6 7 8 9 10 |
SELECT key ,max(CASE WHEN cd = 'cd01' THEN val END) AS cd01 ,max(CASE WHEN cd = 'cd02' THEN val END) AS cd02 ,max(CASE WHEN cd = 'cd03' THEN val END) AS cd03 FROM tbl01 GROUP BY key ; |
- 結果
- key cd01 cd02 cd03 ----- ------ ------ ------ 001 値A 値B 値C 002 値X 値Y 値Z
解説
- 上記とは逆に、横持ちのテーブルから縦持ちのデータとして検索したい場合は、以下ページをご覧ください。
⇒ [SQL] 横持ちのテーブルから縦持ちのデータで検索する