• ベストアンサー

oracle 条件分岐について

oracle10gです。 テーブルAから取得した項目aaaが"1"のとき、 テーブルBから項目bbbを取得する それ以外の場合、 テーブルCから項目cccを取得する という内容のSQLを一度に実行したいのですが、 ifやcaseで実行可能でしょうか。 ご教授いただきたいです。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hwoa1024
  • ベストアンサー率36% (122/336)
回答No.1

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の結合条件

sanosano86
質問者

お礼

早速のご回答ありがとうございました! 無事selectできました!

その他の回答 (1)

  • urunpa
  • ベストアンサー率0% (0/3)
回答No.2

対象レコード数が多い場合は、hwoa1024さんの例の後者の方が良いのではないかと思います。

sanosano86
質問者

お礼

ありがとうございます。 下の例でやってみます!

関連するQ&A