我在这个问题上看到了许多变体,但在询问比较空值时,它们似乎都在谈论性能和索引。
我的问题是我有一个嵌套的 SELECT,它可以返回我根据日期参数进行比较的 null。
SELECT a.*
FROM Table_One a,
Table_Two b
WHERE a.Fieldc IN (SELECT CompareValue from Table_Three cv WHERE inDate between cv.Date_ and SYSDATE)
AND a.Fielda = b.Fieldb(+)
似乎当这里的嵌套选择返回 null 时,左连接就会混乱。
如果需要,我很乐意提供一些虚假数据,但也许我只是遗漏了一些东西。我需要发生的是 Fieldc 比较只发生在该日期规范内。
感谢您的任何见解。谢谢。
更多信息:
Table_One 数据:所有字段都是 varchar2
Fielda | Fieldb | Fieldc|
'aVal' | 'bVal' | 'cVal'|
'dVal' | 'eVal | 'fVal'|
'dVal' | 'fVal | 'eVal'|
Table_Two 数据:所有字段都是 varchar2
Fielda | Fieldb | Fieldc|
'aVal' | 'bVal' | 'cVal'|
'dVal' | 'fVal | 'gVal'|
'dVal' | 'fVal | 'cVal'|
Table_Three 数据:CompareValue 为 varchar2,date_ 为 date
CompareValue | date_ |
'fval' | 2012-09-10 |
因此,如果参数是今天,则选择返回“fval”,我们就可以正确地左连接。但是,当日期参数在 '2012-09-10' 之前,则嵌套选择正在比较 null 并且左连接不会正确发生。这是原始版本的简化版本。
谢谢