【SQL高级(十一)】【SQL NULL 值+SQL NULL函数】

上一篇:【SQL高级(十)】【SQL Date 函数+SQL Date 数据类型】

++++++++++++++++++开始线++++++++++++++++++

一、 SQL NULL 值

NULL 值代表遗漏的未知数据。
默认地,表的列可以存放 NULL 值。

如果表中的某个列是可选的,那么可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。

NULL 值的处理方式与其他值不同。

NULL 用作未知的或不适用的值的占位符。
无法比较 NULL 和 0;它们是不等价的。

1.1 SQL 的 NULL 值处理

在这里插入图片描述

1.1.1 SQL IS NULL

仅仅选取在 “Address” 列中带有 NULL 值的记录

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL

在这里插入图片描述
建议使用 IS NULL 来查找 NULL 值。

1.1.2 SQL IS NOT NULL

仅仅选取在 “Address” 列中不带有 NULL 值的记录

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL

在这里插入图片描述

二、 SQL NULL 函数

2.1 SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数

在这里插入图片描述
“UnitsOnOrder” 是可选的,而且可以包含 NULL 值

SQL Server / MS Access

SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products

Oracle
Oracle 没有 ISNULL() 函数。不过,我们可以使用 NVL() 函数达到相同的结果

SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products

MySQL
MySQL 也拥有类似 ISNULL() 的函数。不过它的工作方式与微软的 ISNULL() 函数有点不同。

在 MySQL 中,我们可以使用 IFNULL() 函数

SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products

在这里插入图片描述

或者我们可以使用 COALESCE() 函数

SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products

在这里插入图片描述

++++++++++++++++++结束线++++++++++++++++++

下一篇:【SQL高级(十二)】【SQL 通用数据类型+SQL 用于各种数据库的数据类型】

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值