缺少值时,Oracle查询不返回结果

时间:2014-11-10 19:48:16

标签: sql oracle

所以我有一个查询,它检查表中的几个值的值对并返回结果。 示例查询:

SELECT NVL(IR16, 'N/A') AS CODE,
NVL(IR15, 'N/A') AS AMOUNT
from table a, table b
where a.pk = b.pk and and regexp_substr(ir16,'\d+$') = regexp_substr( ir15,'\d+$')

返回结果集,例如

-codea   1
-codeb   2
-codec   3

但如果缺少值对,则不会返回该行。例如编解码器就在那里但是值3不存在,它只会返回

-codea   1
-codeb   2

如果缺少值,我希望查询返回编解码器N / A. 任何有关这方面的帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

使用LEFT JOIN,这样您就可以获得所有代码

SELECT NVL(IR16, 'N/A') AS CODE,
NVL(IR15, 'N/A') AS AMOUNT
from table a
LEFT JOIN table b
ON a.pk = b.pk 
and regexp_substr(ir16,'\d+$') = regexp_substr( ir15,'\d+$')