sql中关于null的操作(SQL中关于null的不可不知)

null是SQL中的常见的关键字之一,英文意思是:空。应为它特殊的存在,平时统计数据需要特别注意它的不可不知。

1.null是一种特殊的值,对某个字段使用DISTINCT关键字时,null会和一般值一样,进行排重,只保留一个值。

sql中关于null的操作(SQL中关于null的不可不知)(1)

2.不能对null 值使用比较运算符。简言之,虽然Null是数值,但是不可以对它使用 = 或者 !=,我们可以使用is null 或者 is not null。

sql中关于null的操作(SQL中关于null的不可不知)(2)

3.count(*)会统计null值,count(列名)不包括nul值。

sql中关于null的操作(SQL中关于null的不可不知)(3)

sql中关于null的操作(SQL中关于null的不可不知)(4)

4.含有null值的运算结果都为null。

sql中关于null的操作(SQL中关于null的不可不知)(5)

5.使用sum和ave函数时,相应的列中有null值的话,null不会参与计算。譬如,1,2,3,null,null,4,5

sum该列,值会是15,avg该列的话会是15/5,注意分母不是7而是5.如果需要null值作为0参与运算,可以使用case when 方式进行判断。

select avg(case when col is null then 0 else col end) from example; #分母为7

此外,使用max,min也会忽略null值。

6.如果某一列含有null,使用group by 进行聚合时也会单独保留一行。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页