ISNULL函数用于检查表达式是否为 NULL 值。如果表达式为 NULL,则返回 1(真);否则返回 0(假)。
语法
ISNULL(expression)
参数
expression:要检查的表达式或字段。
返回值
- 返回
1
表示expression
的值是NULL
。 - 返回
0
表示expression
的值不是NULL
。
使用场景
- 检查字段值是否为
NULL
。 - 在查询中对
NULL
值进行过滤。 - 配合条件语句处理
NULL
值。
实战
假设有一个表 users
,结构如下:
id | name | age |
---|---|---|
1 | Alice | 25 |
2 | Bob | NULL |
3 | Charlie | 30 |
1、检查字段是否为 NULL
SELECT id, name, ISNULL(age) AS is_null FROM users;
结果:
id | name | is_null |
---|---|---|
1 | Alice | 0 |
2 | Bob | 1 |
3 | Charlie | 0 |
2、只返回字段为 NULL 的记录
SELECT * FROM users WHERE ISNULL(age);
id | name | age |
---|
2 | Bob | NULL |
3、字段从大到小排序,null放最后
select * from users order by ISNULL(age) ASC, age DESC;
说明
ISNULL(age)
- 将 NULL 值转换为 1,非 NULL 值为 0。
- 按 ASC 排序时,NULL 值会放到最后。
age DESC:
- 对非 NULL 的 age 字段按降序排序