• ベストアンサー

LEFT JOIN の結合結果について

お世話になります。 ”SELECT Aテーブル.* Bテーブル.*  FROM Aテーブル LEFT JOIN Bテーブル ON Aテーブル.KEY = Bテーブル.KEY”を 行った場合、Aテーブルにしか存在しないデータのBテーブル側の値は常にNULLに なるようなのですが、この場合ゼロを固定に設定することは出来ないでしょうか? よろしくお願いします。 ※ORACLE 9i、PL/SQL上での処理を考えています

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

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

実機がないので試してませんが。 B.*ではなく、列を列挙しNVLで囲むとどうなります? select A.列1, A.列2, nvl(B.列1, 0), nvl(B.列2, 0) from のように。

tkuzume
質問者

お礼

bin-chan 様 このような書き方も出来るのですか・・・ まだ開発環境がないので、試せないですが、活用させていただきます。 ありがとうございました

その他の回答 (1)

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.2

仮にBテーブルのカラムが KEY, COL2 NUMBER, COL3 VARCHAR2 だとします。 SELECT Aテーブル.*, Bテーブル.* で取得時にNULLの内容を 0 に置換する事はできません。 以下のように取得時に明示的に置換するしかないと思います。 SELECT Aテーブル.*, NVL(Bテーブル.COL2, 0) COL2, NVL(Bテーブル.COL3, '0') COL3

tkuzume
質問者

お礼

utakataXEX様 ”NVL”でなんとかなりそうです。 これでまた一歩進めました。 ありがとうございました

関連するQ&A