codefirst 导航属性为null_SQL中关于null的不可不知

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

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

6a0260450c18c30867c575965ece68c3.png

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

06b843ffdf1494b4bbdc11d5f19c4db7.png

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

0eddef1a3c2d5b9db8e6f139946bb81d.png
82f08e2ddd03cae3c9e9f6839d232030.png

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

59bb121997c1bb76f4f4682652606bb5.png

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 进行聚合时也会单独保留一行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值