dee*_*dee 1 sql oracle null where-clause
我在这个问题上看到了很多变化,但在询问比较空值时,他们似乎都在讨论性能和索引.
我的问题是我有一个嵌套的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(+)
Run Code Online (Sandbox Code Playgroud)
看起来当嵌套选择返回null时,左连接会混乱.
如果需要,我会很乐意包含一些假数据,但也许我只是遗漏了一些东西.我需要发生的是Fieldc比较只发生在该日期规范中.
感谢您的任何见解.谢谢.
更多的信息:
Table_One数据:所有字段都是varchar2
Fielda | Fieldb | Fieldc|
'aVal' | 'bVal' | 'cVal'|
'dVal' | 'eVal | 'fVal'|
'dVal' | 'fVal | 'eVal'|
Run Code Online (Sandbox Code Playgroud)
Table_Two数据:所有字段都是varchar2
Fielda | Fieldb | Fieldc|
'aVal' | 'bVal' | 'cVal'|
'dVal' | 'fVal | 'gVal'|
'dVal' | 'fVal | 'cVal'|
Run Code Online (Sandbox Code Playgroud)
Table_Three数据:CompareValue是varchar2,date_是日期
CompareValue | date_ |
'fval' | 2012-09-10 |
Run Code Online (Sandbox Code Playgroud)
因此,如果参数是今天的选择返回'fval',我们得到正确的左连接.但是,当date参数在'2012-09-10'之前时,嵌套的select正在比较null,而左连接没有正确发生.这是原始版本的简化版本.
谢谢