- ベストアンサー
外部結合での"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句の中で外部結合は使用できません。 と出てしまいます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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'); でしょう。
その他の回答 (1)
- DrSumire
- ベストアンサー率39% (264/666)
そしたら 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'; としてみれば良いのではないでしょうか?
お礼
直ぐにお答え頂きありがとうございました。
お礼
おかげさまで、上手く行きました。 どうもありがとうございました。