SQL中的null问题汇总

  1. 比较操作符 with null
    任何值和NULL使用比较运算符(>,<,>=,<=,<>,=)或者(in, not in, any/some, all)比较时,返回值都为NULL
  2. in / not in with null
select * from test;
+------+------+	
| a    | b    |	
+------+------+	
|    1 |    1 |	
|    1 | NULL |	
| NULL | NULL |	
+------+------+

mysql> select * from test1 where a in (null);	
Empty set (0.00 sec)

mysql> select * from test1 where a in (null,1);	
+------+------+	
| a    | b    |	
+------+------+	
|    1 |    1 |	
|    1 | NULL |	
+------+------+	
2 rows in set (0.00 sec)
-- 当in和null比较时,无法查询出为null的记录

mysql> select * from test1 where a not in (1);	
Empty set (0.00 sec)	
mysql> select * from test1 where a not in (null);	
Empty set (0.00 sec)
mysql> select * from test1 where a not in (null,2);	
Empty set (0.00 sec)	
mysql> select * from test1 where a not in (2);	
+------+------+	
| a    | b    |	
+------+------+	
|    1 |    1 |	
|    1 | NULL |	
+------+------+	
2 rows in set (0.00 sec)
-- 当not in后面有null值时,不论什么情况下,整个sql的查询结果都为空

  1. min/ max with null
  2. sum/ count with null
    sum的列中有null时返回null; count的列中有null时不计数
  3. order by with null
    null 会参与排序,且被当成是无穷小的数参与排序
  4. window function with null
    同上,且针对rank 和 dense_rank null值会被赋予同样的排序值
  5. concat with null
    concat(1, null)返回null
  6. group by with nulln
    null 行会正常参与分组
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值