2013-02-21 62 views

回答

11

null任何比较是假的 - =<>><,等等。您也不能在IN列表中使用null - 它将被忽略。而且,两个null都是而不是甚至彼此相等。

要获得空,你需要明确要求对他们来说,就像这样:

SELECT * FROM NAME WHERE FIRST IS NULL OR FIRST != '1' 
9

任何比较为NULL返回NULL,这相当于为FALSE。这是不平等的前夕。

如果你想包括NULL值,请执行下列操作之一:

where first <> '1' or first is null 

where coalesce(first, '<null>') <> '1' 
4

在Oracle中,空不被认为是法律价值的选择,除非你明确要求它:

select * from name where (first != '1') or first is null 

您也可以使用NVL(类似于合并):

select * from name where nvl(first,'0') != '1' 
2

因为NULL不能与任何其他需要比较的是正确的....

唯一的选择你必须要包括NULL检查作为或命令

SELECT * FROM NAME WHERE FIRST!=1 OR FIRST IS NULL 

根据Oracle文档NULL被定义为值不knownm或当该值不有意义的。这就是为什么Oracle提到不把NULL值视为NULL的原因。这仅仅是一个附加内容。谢谢!