MSSql Server中Null值的一些特殊地方

2021-06-20 02:03:32 字數 1038 閱讀 8954

sql空值處理null的用法規則

select * from tb_customer where lastname != null

select null=null

select * from tb_customer where lastname is null

select * from tb_customer where lastname is not null

select count(*),count(customerid),count(lastname) from tb_customer 

sql中,null與空格,零,都不相同,是指"不知道",

構成因素:造成某一列為null的因素可能是:值不存在、值未知、列對表不可用

與普通值的最大異同是:

相同點:(1)都屬於值範疇,1,'aaa',null都是乙個值

(2)都是合法的值,普通的數字、字元可以存在於表中字段,null也可以

不同點:

(1)普通值可以進行運算子操作,如id列為int,id=id+1,但null+1=null

(2)普通值可以進行= 操作,但不能customerno = null,可以用is null 或 is not null

(3)統計函式count,in不同, count(id),count(fullname)會忽略null值

(4)排序時不同:order by 時,首先呈現null值,用desc降序,null值最後顯示 

(5)當使用group by時,所有的null值被認為是相等的

insert into testnull values('3',null)

insert into testnull values('4','4')

select count(b),b from testnull group by b

返回結果: 0 1 1

結論:可見在group by  的時候,null視為等同.

(6)永遠不會有什麼資料等於null。1不等於null,2也一樣。但null也不等於null。所以我們只能比較它「是」或「不是」。    

MS SQL SERVER中的臨時表

對於複雜的查詢,我們可以使用巢狀的複雜的sql語句來實現,但是有些時候,借助於臨時表,可以更加方便 高效。sql server 支援臨時表。臨時表就是那些名稱以井號 開頭的表。如果當使用者斷開連線時沒有除去臨時表,sql server 將自動除去臨時表。臨時表不儲存在當前資料庫內,而是儲存在系統資料...

MS SQL SERVER中的臨時表

對於複雜的查詢,我們可以使用巢狀的複雜的sql語句來實現,但是有些時候,借助於臨時表,可以更加方便 高效。sql server 支援臨時表。臨時表就是那些名稱以井號 開頭的表。如果當使用者斷開連線時沒有除去臨時表,sql server 將自動除去臨時表。臨時表不儲存在當前資料庫內,而是儲存在系統資料...

MS SQL SERVER中的臨時表

對於複雜的查詢,我們可以使用巢狀的複雜的sql語句來實現,但是有些時候,借助於臨時表,可以更加方便 高效。sql server 支援臨時表。臨時表就是那些名稱以井號 開頭的表。如果當使用者斷開連線時沒有除去臨時表,sql server 將自動除去臨時表。臨時表不儲存在當前資料庫內,而是儲存在系統資料...