2012-02-13 84 views
4

我試着查詢表用下面的查詢:Oracle'NOT LIKE'表達式是否不返回NULL?

select * from name where firstname NOT LIKE 'PETER%' 

它不返回任何記錄,其中名字爲空。這是一些錯誤還是這是怎麼回事?我來自SQL Server背景,並且在這裏與許多事情混淆。

回答

8

NULL與LIKE不匹配。你必須明確地要求它與OR firstname IS NULL

1

任何與NULL比較返回「未知」 - 這在大多數情況下是相同的「不正確」。

如果SQL Server爲NOT LIKE 'PETER%'返回NULL值比我認爲SQL Server中存在一個錯誤。

+0

MS SQL Server有一個**棄用的**模式,其中null可以像使用'=','<>'等的普通值進行比較。在這一點上,我不會稱之爲bug,而是不幸的功能。 – 2012-02-13 20:51:01

+0

那麼,SQL標準很清楚... – 2012-02-13 20:55:09