- ベストアンサー
LEFT JOIN の結合結果について
お世話になります。 ”SELECT Aテーブル.* Bテーブル.* FROM Aテーブル LEFT JOIN Bテーブル ON Aテーブル.KEY = Bテーブル.KEY”を 行った場合、Aテーブルにしか存在しないデータのBテーブル側の値は常にNULLに なるようなのですが、この場合ゼロを固定に設定することは出来ないでしょうか? よろしくお願いします。 ※ORACLE 9i、PL/SQL上での処理を考えています
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
実機がないので試してませんが。 B.*ではなく、列を列挙しNVLで囲むとどうなります? select A.列1, A.列2, nvl(B.列1, 0), nvl(B.列2, 0) from のように。
その他の回答 (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
質問者
お礼
utakataXEX様 ”NVL”でなんとかなりそうです。 これでまた一歩進めました。 ありがとうございました
お礼
bin-chan 様 このような書き方も出来るのですか・・・ まだ開発環境がないので、試せないですが、活用させていただきます。 ありがとうございました