肯定的回答是:不等于。因為獎金為 NULL值,NULL值代表具體的什么值?都不知道。而不知道NULL值到底是多少,那么又怎么能進行計算呢?所以總工資等于 NULL 的,也是不確定的。這樣,還有員工敢在公司嗎?萬一你來個總工資的 NULL 為真的空了,那還做什么工作啊?!這就涉及到一個強制轉換的問題,即把 NULL值強制轉換為 0 ,讓其具備業務意義。而強制轉換的關鍵字就是 IS ,語法即 IS NULL;這樣就可以進行涉及 NULL值的計算了。
不過 NULL值也不是對所有的統計函數都有影響。一般來說。統計平均值(AVG)時, NULL值是一定會有影響的;統計最小值(MIN)時, NULL值是可能會對 MIN 有影響,在我認為是有點隨機性質;統計最大值(MAX)或統計和(NULL)時,NULL值是對其完全沒有影響的。
所以又有一種說法是:null值不參加統計,不參加計算,只能用is判斷。
判斷Null值語句:select * from 表 where 字段 is null;
轉換null值語句:select 字段1,字段2,字段3,is null(字段3,'某個值') from 表;
總之,我們要認真對待 NULL值,最好在使用統計函數時,都加上 IS NULL,以防意外出現。
sqlserver 中isnull的用法一例
數據庫中有一列記錄文章的訪問次數。我現在要實現的功能是,每刷新一次頁面。 訪問次數+1。sql語句,art_count為訪問次數,int類型。 update article set art_count="(art_count+1) where art_id="3 但如果art_count為NULL,則不起作用。 如果是oracle用decode可以很容易的實現此功能。sqlserver中如何實現類似的功能呢? sqlserver中有一個函數isnull,此函數有兩個參數isnull(p1,p2)其用法是如果p1為null,則用p2代替。 此函數類似oracle的nvl。例如 SELECT AVG(ISNULL(price, $10.00)) FROM titles 受到此函數的啟發我這樣寫的sql語句 update article set art_count="(isnull(vote_count,0)+1) where art_id="3 "