• ベストアンサー

外部結合での"OR"文

外部結合で、"AND"の他に"OR"文も使用したいと思います。 しかし、それを実行すると構文エラーになってしまします。 どうしたら上手く出来るのでしょうか? 宜しくお願い致します。 ちなみに、Oracle8iを使用しています。 SELECT test_tbl.tanto_cd,test_tbl.tanto_name, test_tbl.tanto_filecd,test_tbl.tanto_filename FROM test_tbl, test_tbl2 where test_tbl.tanto_cd(+) = test_tbl2.tanto_cd and tanto_filename like '%名%' or test_tbl.tanto_cd = '0000001'; 上記のselect文を流すと 4行でエラーが発生しました。 ORA-01719: OR句またはIN句の中で外部結合は使用できません。 と出てしまいます。

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

  • ベストアンサー
  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.1

SELECT test_tbl.tanto_cd,test_tbl.tanto_name, test_tbl.tanto_filecd,test_tbl.tanto_filename FROM test_tbl, test_tbl2 where test_tbl.tanto_cd(+) = test_tbl2.tanto_cd and (tanto_filename like '%名%' or test_tbl.tanto_cd = '0000001'); か SELECT test_tbl.tanto_cd,test_tbl.tanto_name, test_tbl.tanto_filecd,test_tbl.tanto_filename FROM test_tbl, test_tbl2 where (test_tbl.tanto_cd(+) = test_tbl2.tanto_cd and tanto_filename like '%名%') or (test_tbl.tanto_cd(+) = test_tbl2.tanto_cd and test_tbl.tanto_cd = '0000001'); でしょう。

noname#11049
質問者

お礼

おかげさまで、上手く行きました。 どうもありがとうございました。

その他の回答 (1)

  • DrSumire
  • ベストアンサー率39% (264/666)
回答No.2

そしたら SELECT * FROM (SELECT test_tbl.tanto_cd,test_tbl.tanto_name, test_tbl.tanto_filecd,test_tbl.tanto_filename FROM test_tbl, test_tbl2 where test_tbl.tanto_cd(+) = test_tbl2.tanto_cd) WHERE tanto_filename like '%名%' or test_tbl.tanto_cd = '0000001'; としてみれば良いのではないでしょうか?

noname#11049
質問者

お礼

直ぐにお答え頂きありがとうございました。

関連するQ&A