2012-03-22 133 views
1

我已經在SQL Server 2008的Sql相同的查詢,但示出了不同的結果

select select * from program 
where program_description <> null 

書寫的查詢但是,上述查詢的結果是空白的。 而下面的查詢顯示了我想要的結果。

select * from program 
where program_description is not null 

它們之間有什麼區別嗎?

+0

可能重複[什麼是「= null」和「IS NULL」](http://stackoverflow.com/questions/2749044/what-is-null-and-is-null) – billinkc 2012-03-22 12:26:27

回答

3

是,=和<>不適用於null。 您必須使用IS NULL或IS NOT NULL

+0

好的工作TGH.keep這個好工作 – 2012-03-22 08:44:48

+0

我們可以使用!=運算符進行空值比較 – 2012-03-22 12:41:30

+0

!=不是sql運算符... – TGH 2012-03-23 05:25:15

3

是的,有區別。與null比較將總是導致unknown

這就是爲什麼你需要is null

+0

我想獲得那些記錄的輸出,只有在哪個program_description值不應該爲null。可以請你解釋一下更深入地回答。 – 2012-03-22 05:40:00

+0

@manojkumarsingh,'null'表示值爲'null'。 '不爲空'表示該值不是'null'。 '<> null'不符合你的期望,請使用'not null'代替。 – rid 2012-03-22 05:43:01

+0

@manojkumarsingh:請參閱[使用NULL](http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html) – 2012-03-22 05:46:08

1

比較null結果是,所不同的是 - 根據標準,與空返回NULL的所有操作。包括<>。檢查空值的唯一有效方法是操作'爲空'。

+1

根據*標準*,比較的結果是'unknown',而不是'null',一些實現混淆了這兩個概念,其他的則沒有。 – 2012-03-22 06:01:55

+0

該標準包含運算符'IS [NOT] NULL'和'IS [NOT] DISTINCT FROM',它們始終評估爲TRUE或FALSE,從不UNKNOWN。 – onedaywhen 2012-03-22 08:16:08

相關問題