sql server null值須要注意的地方

一、null與任何運算符運算後都爲nullhtml

普通的值通常均可能進行運算符操做,但例如:ID列爲int,因此能夠這樣:ID=ID+1等,但若是一列的值爲null,null+1=nullsql

例如函數

update testNull
set b=b+1
where b is null
spa

查詢後發現b的值沒有變化,仍然爲null.server

 

二、任何值與null比較時都會返回falsehtm

普通的值能夠進行"="操做,例如條件中通常都會這樣出現:sUserName='張三',若是sUserName的值爲null,要想找出全部名字爲null的記錄時,不能這樣用:sUserName=null,由於null不是一個具體的值,任何值與它比較時都會返回false。此時可借用is null 或者是is not null.排序

例如get

select * from testNull where a=null   --返回空結果集

select * from testNull where b is null   --返回結果集 2 2 NULLtest

說明null是不能用"="來比較,可用is null來替換date

 

三、當統計的記錄中的包含有null值時,它會忽略null值

例如在用統計函數count時會不一樣,例如count(ID):統計記錄數.當統計的記錄中的包含有null值時,它會忽略null值.

 

四、對於in 的影響不一樣

示例查詢:查詢testNull表中b的值包含在null中的記錄.

select * from testNull where b in(null)  --沒有任何記錄


in在查詢時會忽略null的記錄,查詢的時候可用is not null來查詢

 

五、排序時順序有不一樣

當使用ORDER BY時,首先呈現NULL值。若是你用DESC以降序排序,NULL值最後顯示。

 


參考資料:  sql server 如何判斷 null   http://www.studyofnet.com/news/1056.html

相關文章
相關標籤/搜索