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

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

SQL NULL 值

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

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

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

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

SQL 的 NULL 值处理

在这里插入图片描述

SQL IS NULL

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

SELECT LastName,FirstName,Address FROM Persons

WHERE Address IS NULL

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

SQL IS NOT NULL

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

SELECT LastName,FirstName,Address FROM Persons

WHERE Address IS NOT NULL

在这里插入图片描述

SQL NULL 函数

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 用于各种数据库的数据类型】

猜你喜欢

转载自blog.csdn.net/qq_42893334/article/details/107324967
今日推荐