今天遇到一个问题:select * from XXX A
where A.xx <> ""(或者此处A.xx <> null)
or A.xx is nullXXX表的xx字段无非就是空或者不是空,我认为执行上述sql文应该检索出XXX表总的所有数据,但是执行结果是只把xx字段为空的数据检索出来了,我有点不太明白,能给我解释一下么
where A.xx <> ""(或者此处A.xx <> null)
or A.xx is nullXXX表的xx字段无非就是空或者不是空,我认为执行上述sql文应该检索出XXX表总的所有数据,但是执行结果是只把xx字段为空的数据检索出来了,我有点不太明白,能给我解释一下么
对空的判断只有 IS NULL和IS NOT NULL
我sql文是这么写的,没有报错,是不是
A.xx <> ""
虽然没有错,但也不会被解析,所以把该字段为空的数据检索出来了
楼主问的好问题,首先,你这个<> '',应该是单引号。
为什么只把空的数据检索出来了,
这与Oracle数据库有关系。
<> ''与<> null是等效的。
在Oracle中,判断<> null是恒为false的。所以,真正有用的是后边那个条件is null。
要想判断不为空,有效的只能是: is not null.
null值确实是一个很有意义的话题.
null is null;
只有上面两个返回真 其余不是假就是语句有问题