SQL:空值null判斷和操作

一、SQL中空值判斷使用is null還是= null?

首先先給出答案,使用select 屬性 from 表 where 字段 is null。
那麼爲什麼不使用 = 呢?

在SQL邏輯中包含三種邏輯值,true、false、unknown。

任何值(包括null本身)與null進行邏輯判斷時都會返回結果unknown。
接着,在where和having’子句中unknown結果會被視作false,這也就是爲什麼使用 = null的時候什麼結果都沒有的原因。
當然,並非所有的unknown都會被當作false處理的,在check約束中,unknown被當作true進行處理,也就是說null >= 0的返回結果時true。
在group by語句中,所有的null被視作相同,所以null會被分在一個組中。


二、聚集函數

常見的聚集函數有:sum,count,max,min,avg。
那麼在聚集函數中,null的元組值如何處理呢?
結論是:除了count以外的所有聚集函數,都會自動忽視null的值進行執行。

三、其他

null在算數運算中進行運算的話,返回的結果是null。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章