SQL查询中NULL的问题解决

MySQL 专栏收录该内容
14 篇文章 1 订阅

本文是在学习sql过程中遇到的一些问题,并对此部分作出总结。


  • SQL 中NULL的含义
  • SQL查询中关于NULL的注意事项

###SQL 中NULL的含义

在SQL中,出现 NULL 原因可能:

  1. 值未知;
    2.值不存在;
    3.列对表不可用。
    还需要注意, NULL 并非是一个值,与’'等是不一样的。

###SQL查询中关于NULL的注意事项

在SQL中查询中遇到NULL时要注意书写,下面举例说明。

payment表部分数据如下 :

customer_idstaff_idamount
34121.99
34217.99
3422
34323.99
3432
34422.99

利用SQL如下查询:

>SELECT * FROM payment WHERE amount <> NULL;
....
(0 rows)
>SELECT * FROM payment WHERE amount > NULL;
....
(0 rows)
>SELECT * FROM payment WHERE amount = NULL;
....
(0 rows)
>SELECT * FROM payment WHERE amount is NULL;
|customer_id|staff_id |amount|
-----+-----+-------+------- 
  342|  2  |       |
  343|  2  |       |
  ...| ... |  ...  |
>SELECT * FROM payment WHERE amount ='';
ERROR:invalid input syntax for type numeric:""
LINE1:SELECT * FROM payment WHERE amount ='';
                                          ^
>SELECT * FROM payment WHERE amount is not NULL;
|customer_id|staff_id |amount|
-----+-----+-------+------- 
  341|  2  |  1.99 |
  342|  1  |  7.99 |
  343|  2  |  3.99 |
  344|  2  |  2.99 |
  ...| ... |  ...  |
>SELECT * FROM payment WHERE amount != NULL; 
....
(0 rows)

由上可知,SQL中对含NULL进行查询,采用=, !=,<, <>, ''是无效的,应当使用 is NULL 和 is not NULL 形式查询。

  • 4
    点赞
  • 0
    评论
  • 6
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 撸撸猫 设计师:马嘣嘣 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值