プロが教える店舗&オフィスのセキュリティ対策術

index | id  | param
-------------------
001  | 1  | 犬
001  | 2  | 猫
002  | 1  | 猿
003  | 1  | 雉
003  | 2  | 馬

というようなテーブルがあり、これをSQLで取得した時に、

index | param(id=1) | param(id=2)
----------------------------------
001  | 犬     |  猫
002  | 猿      |
003  | 雉     |  馬

といった結果で取得することは可能でしょうか?

・結果では必ずindexは重複させない。
・idは必ず1か2、もしくはid=2がない。

joinやunionなど試してみましたが、書き方が悪いのか求める結果が得られませんでした。

ご教授いただければと思います。

教えて!goo グレード

A 回答 (1件)

こんな感じでどうぞ。

MAXはSUMなどに置き換えれば他のケースでも応用がききます。

SELECT
[INDEX],
MAX(CASE WHEN ID=1 THEN PARAM END),
MAX(CASE WHEN ID=2 THEN PARAM END)
FROM tbl1
GROUP BY [INDEX]
    • good
    • 3
この回答へのお礼

>jamshid6さん
有難う御座います!
求める結果が得られました。

MAX式を使うとは思いもつきませんでした。。。

MAX以下の文がまだ理解できていませんが、ひとまず目処が立ちました。

また、返信が遅くなり申し訳御座いませんでした。

お礼日時:2008/09/09 12:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング