推荐答案
在 SQL 中,IS NULL
和 IS NOT NULL
用于判断某个列的值是否为空值(NULL)。以下是它们的基本用法:
-- 查询某列为空值的记录 SELECT * FROM table_name WHERE column_name IS NULL; -- 查询某列不为空值的记录 SELECT * FROM table_name WHERE column_name IS NOT NULL;
本题详细解读
1. IS NULL
的使用
IS NULL
用于检查某个列的值是否为 NULL
。NULL
在 SQL 中表示缺失或未知的值,它与空字符串或 0 不同。使用 IS NULL
可以筛选出那些在指定列中没有值的记录。
示例:
假设有一个 employees
表,其中有一个 email
列,我们想找出那些没有填写邮箱的员工:
SELECT * FROM employees WHERE email IS NULL;
2. IS NOT NULL
的使用
IS NOT NULL
用于检查某个列的值是否不为 NULL
。它可以筛选出那些在指定列中有值的记录。
示例:
继续使用 employees
表,我们想找出那些已经填写了邮箱的员工:
SELECT * FROM employees WHERE email IS NOT NULL;
3. 注意事项
NULL
与任何值的比较(包括NULL
本身)都会返回UNKNOWN
,因此不能使用=
或!=
来比较NULL
。必须使用IS NULL
或IS NOT NULL
。- 在某些数据库中,空字符串和
NULL
是不同的概念。空字符串表示一个已知的、长度为 0 的字符串,而NULL
表示未知或缺失的值。
错误示例:
-- 错误的用法,无法正确筛选出 NULL 值 SELECT * FROM employees WHERE email = NULL;
正确示例:
-- 正确的用法 SELECT * FROM employees WHERE email IS NULL;