欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
全部教程·
数据库·
SQL
[目录]
·
SQL NULL 函数
SQL 教程
SQL 语法
SQL 基础教程
SQL SELECT 语句 SQL DISTINCT 语句 SQL WHERE 语句 SQL AND OR 运算符 SQL ORDER BY 关键字 SQL INSERT 语句 SQL UPDATE 语句 SQL DELETE 语句 TOP, LIMIT, ROWNUM SQL LIKE 操作符 SQL 通配符 SQL IN 操作符 SQL BETWEEN 操作符SQL 高级教程
SQL 别名 SQL JOIN SQL INNER JOIN SQL LEFT JOIN SQL RIGHT JOIN FULL OUTER JOIN SQL UNION 操作符 SQL SELECT INTO INSERT INTO SELECT CREATE DATABASE CREATE TABLE SQL 约束 SQL NOT NULL 约束 SQL UNIQUE 约束 SQL PRIMARY KEY SQL FOREIGN KEY SQL CHECK 约束 SQL DEFAULT 约束 SQL CREATE INDEX SQL DROP 语句 SQL ALTER TABLE AUTO INCREMENT SQL VIEW SQL GROUP BY SQL HAVING 子句 SQL NULL 值 SQL 通用数据类型 SQL 特定数据类型SQL 函数
SQL 函数 SQL AVG() 函数 SQL COUNT() 函数 SQL FIRST() 函数 SQL LAST() 函数 SQL MAX() 函数 SQL MIN() 函数 SQL SUM() 函数 SQL EXISTS 函数 SQL UCASE() 函数 SQL LCASE() 函数 SQL MID() 函数 SQL LEN() 函数 SQL ROUND() 函数 SQL NOW() 函数 SQL FORMAT() 函数 SQL Date 函数 SQL NULL 函数
SQL 教程
SQL 语法
SQL 基础教程
SQL SELECT 语句 SQL DISTINCT 语句 SQL WHERE 语句 SQL AND OR 运算符 SQL ORDER BY 关键字 SQL INSERT 语句 SQL UPDATE 语句 SQL DELETE 语句 TOP, LIMIT, ROWNUM SQL LIKE 操作符 SQL 通配符 SQL IN 操作符 SQL BETWEEN 操作符SQL 高级教程
SQL 别名 SQL JOIN SQL INNER JOIN SQL LEFT JOIN SQL RIGHT JOIN FULL OUTER JOIN SQL UNION 操作符 SQL SELECT INTO INSERT INTO SELECT CREATE DATABASE CREATE TABLE SQL 约束 SQL NOT NULL 约束 SQL UNIQUE 约束 SQL PRIMARY KEY SQL FOREIGN KEY SQL CHECK 约束 SQL DEFAULT 约束 SQL CREATE INDEX SQL DROP 语句 SQL ALTER TABLE AUTO INCREMENT SQL VIEW SQL GROUP BY SQL HAVING 子句 SQL NULL 值 SQL 通用数据类型 SQL 特定数据类型SQL 函数
SQL 函数 SQL AVG() 函数 SQL COUNT() 函数 SQL FIRST() 函数 SQL LAST() 函数 SQL MAX() 函数 SQL MIN() 函数 SQL SUM() 函数 SQL EXISTS 函数 SQL UCASE() 函数 SQL LCASE() 函数 SQL MID() 函数 SQL LEN() 函数 SQL ROUND() 函数 SQL NOW() 函数 SQL FORMAT() 函数 SQL Date 函数 SQL NULL 函数SQL NULL 函数
用来判断字段的值是否为 NULL,包括:ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数。
请看下面的 "Products" 表:
| P_Id | ProductName | UnitPrice | UnitsInStock | UnitsOnOrder |
|---|---|---|---|---|
| 1 | Jarlsberg | 10.45 | 16 | 15 |
| 2 | Mascarpone | 32.56 | 23 | |
| 3 | Gorgonzola | 15.67 | 9 | 20 |
假如 "UnitsOnOrder" 是可选的,而且可以包含 NULL 值。
我们使用下面的 SELECT 语句:
SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder) FROM Products
在上面的范例中,如果有 "UnitsOnOrder" 值是 NULL,那么结果是 NULL。
微软的 ISNULL() 函数用于规定如何处理 NULL 值。
NVL()、IFNULL() 和 COALESCE() 函数也可以达到相同的结果。
在这里,我们希望 NULL 值为 0。
下面,如果 "UnitsOnOrder" 是 NULL,则不会影响计算,因为如果值是 NULL 则 ISNULL() 返回 0:
1. SQL Server / MS Access
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0)) FROM Products
2. Oracle
Oracle 没有 ISNULL() 函数。不过,我们可以使用 NVL() 函数达到相同的结果:
SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0)) FROM Products
3. 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
AI 中文社