【Oracle SQL*Plus】JOINでNULL同士を紐づける方法
備忘録になります。NULL同士はイコール条件に含む事が出来ないので、ORつけて、それぞれNULLである事の条件を加えてあげるとうまくいきます。
実施例
SQL> SELECT * FROM TABLE_A;
NAME VAL1
---------- ----------
aaa 1111
bbb 2222
ccc 3333
4444
SQL> SELECT * FROM TABLE_B;
NAME VAL2
---------- ----------
aaa 10
bbb 20
ccc 30
40
SQL> SELECT A.NAME,A.VAL1,B.VAL2
2 FROM TABLE_A A
3 JOIN TABLE_B B
4 ON A.NAME = B.NAME;
NAME VAL1 VAL2
---------- ---------- ----------
aaa 1111 10
bbb 2222 20
ccc 3333 30
SQL> SELECT A.NAME,A.VAL1,B.VAL2
2 FROM TABLE_A A
3 JOIN TABLE_B B
4 ON A.NAME = B.NAME OR (A.NAME IS NULL AND B.NAME IS NULL);
NAME VAL1 VAL2
---------- ---------- ----------
aaa 1111 10
bbb 2222 20
ccc 3333 30
4444 40
関連記事