SQL 中的 NULLIF() 函数,用于比较两个表达式并返回较小的值,若均为 NULL 则返回 NULL,语法为 NULLIF(expression1, expression2)。可用它避免错误、简化代码,亦可用于过滤、创建唯一索引和替换 NULL 值。

SQL 中的 NULLIF() 函数
NULLIF() 函数的用途
NULLIF() 函数用于返回两个表达式中较小的值,如果两个表达式都为 NULL,则返回 NULL。
语法
NULLIF(expression1, expression2)
其中:
- expression1:要比较的第一个表达式。
- expression2:要比较的第二个表达式。
用法示例
假设我们有一个包含以下数据的表:
| id | name | age |
|---|---|---|
| 1 | John Doe | 30 |
| 2 | Jane Smith | NULL |
| 3 | Mark Wilson | 25 |
我们可以使用 NULLIF() 函数来查找 name 为 NULL 的人员的年龄:
在整本书中我们所涉及许多的Flex框架源码,但为了简洁,我们不总是显示所指的代码。当你阅读这本书时,要求你打开Flex Builder,或能够访问Flex3框架的源码,跟随着我们所讨论源码是怎么工作及为什么这样做。 如果你跟着阅读源码,请注意,我们经常跳过功能或者具体的代码,以便我们可以对应当前的主题。这样能防止我们远离当前的主题,主要是讲解代码的微妙之处。这并不是说那些代码的作用不重要,而是那些代码处理特别的案例,防止潜在的错误或在生命周期的后面来处理,只是我们当前没有讨论它。有需要的朋友可以下载看看
SELECT id, name, NULLIF(age, 0) AS age_without_null FROM table_name;
结果:
| id | name | age_without_null |
|---|---|---|
| 1 | John Doe | 30 |
| 2 | Jane Smith | NULL |
| 3 | Mark Wilson | 25 |
因为 name 为 NULL 的行 (Jane Smith) 的 age 也为 NULL,所以 NULLIF() 函数返回 NULL。
使用 NULLIF() 函数的好处
使用 NULLIF() 函数的主要好处是:
- 避免在涉及 NULL 值的表达式中出现错误。
- 简化代码,使代码更易于阅读和理解。
其他用法
NULLIF() 函数还可以用于其他场景,例如:
- 过滤掉包含 NULL 值的行。
- 创建唯一的索引,同时忽略 NULL 值。
- 将 NULL 值替换为其他值。









