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。

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