2013-02-21 85 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的原因。這僅僅是一個附加內容。謝謝!