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 將自動除去臨時表。臨時表不儲存在當前資料庫內,而是儲存在系統資料...