- ベストアンサー
oracle 条件分岐について
oracle10gです。 テーブルAから取得した項目aaaが"1"のとき、 テーブルBから項目bbbを取得する それ以外の場合、 テーブルCから項目cccを取得する という内容のSQLを一度に実行したいのですが、 ifやcaseで実行可能でしょうか。 ご教授いただきたいです。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
oracleの環境がないので確認はできないのですが SELECT CASE WHEN table_a.aaa = 1 THEN (SELECT bbb FROM table_b where table_aとの結合条件) ELSE (SELECT ccc FROM table_c where table_aとの結合条件) END FROM table_a のように書けばできそうです。 もしくは SELECT CASE WHEN table_a.aaa = 1 THEN table_b.bbb ELSE table_c.ccc END FROM table_a, table_b, table_c WHERE table_aとtable_bの結合条件 AND table_aとtable_cの結合条件
その他の回答 (1)
- urunpa
- ベストアンサー率0% (0/3)
回答No.2
対象レコード数が多い場合は、hwoa1024さんの例の後者の方が良いのではないかと思います。
質問者
お礼
ありがとうございます。 下の例でやってみます!
お礼
早速のご回答ありがとうございました! 無事selectできました!