上一篇:【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