2

我在以下查询中的一个表中没有数据;我的结果集是空的。但是,我正在尝试使用 NVL() FUNCTION;它仍然给出空集。有人可以帮助我理解这种行为。但是,我的期望是显示“0”;得到空的结果。我正在使用oracle 11g。

SELECT NVL(T8.COLLECTION_BALANCE_AMT, 0)
      from BV_COLLECTION_CLAIM T8 JOIN BV_CLAIM_LIABLE_INDV T2
      ON T8.CLAIM_ID = T2.CLAIM_ID
      JOIN BV_CLAIM_RECOVERY T3
      ON T8.CLAIM_ID = T3.CLAIM_ID
4

1 回答 1

1

Ajoin只返回匹配的行。您正在寻找一个left join,它将返回连接表中不存在null匹配的列:

SELECT    NVL(T8.COLLECTION_BALANCE_AMT, 0)
FROM      BV_COLLECTION_CLAIM T8 
LEFT JOIN BV_CLAIM_LIABLE_INDV T2 -- here!
       ON T8.CLAIM_ID = T2.CLAIM_ID
LEFT JOIN BV_CLAIM_RECOVERY T3  -- here too!
       ON T8.CLAIM_ID = T3.CLAIM_ID
于 2015-01-29T15:53:44.970 回答