oracle--not in查不到应有的结果(NULL、IN、EXISTS详解)
发布时间:2020-12-12 15:23:28 所属栏目:百科 来源:网络整理
导读:转载自:http://www.blogjava.net/zhangwei217245/archive/2010/01/25/310708.html 问题: 语句1 : Select * from table1A where A.col1 not in ( select col1 table2B) 如果这样,本来应该有一条数据,结果没有。 如果我改写成这样: 语句2 : table1 A ex
转载自:http://www.blogjava.net/zhangwei217245/archive/2010/01/25/310708.html 问题: 如果这样,本来应该有一条数据,结果没有。 如果我改写成这样:语句2: table1 AexistsSELECT*FROMtable2 BB.col1=A.col1) 结果就正确,有一条数据显示。 经过一番搜索,原以为是子查询结果集太大的原因。 后来有网上强人指点:子查询里面有空集。即子查询的结果集里面有NULL的结果。 把查询语句修改成: 语句3: table2BB.col1isnull) 果然就查出来了。而且一点不差。。。厉害阿~~~
1。 首先来说说Oracle中的NULL。 Oracle中的NULL代表的是无意义,或者没有值。将NULL和其他的值进行逻辑运算,运算过程中,NULL的表现更象是FALSE。 下面请看真值表: |