一、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