IS NULL

IS NULL 子句用于在 WHERE 条件中判断列中的值是否为 NULLNULL 表示该列没有值,或者值未知。需要注意的是,NULL 与空字符串或空格不同,它们是有具体值的。

注意事项

使用等号(=)来判断 NULL 是无法得到预期结果的,因为 NULL 不能用等号来比较。

语法

SELECT * FROM table_name WHERE expression IS NULL;
SELECT * FROM table_name WHERE expression IS NOT NULL;

其中,expression 是要判断的表达式,它可以是任意类型。IS NULLIS NOT NULL 的返回值是布尔类型(BOOLEAN),如果 expression 的值为 NULL,则返回 TRUE,否则返回 FALSE

示例

假设我们有一个名为 student 的表,其中包含以下数据:

idnamegender
1AliceF
2BobM
3CathyF
4DavidNULL
  1. 现在,我们想要从 student 表中查询性别为 NULL 的学生,我们可以使用以下 SQL 语句:

    SELECT * FROM student WHERE gender IS NULL;

    结果集如下:

    idnamegender
    4DavidNULL
  2. 如果我们想要查询性别不为 NULL 的学生,我们可以使用以下 SQL 语句:

    SELECT * FROM student WHERE gender IS NOT NULL;

    结果集如下:

    idnamegender
    1AliceF
    2BobM
    3CathyF

常见问题

Q: 为什么使用等号(=)判断 NULL 值无法得到预期结果?

A: 这是因为 NULL 表示未知或缺失的值,所以它不能与任何值(包括 NULL)进行比较。使用等号(=)判断 NULL 值时,结果会是 UNKNOWN,而不是 TRUEFALSE。因此,我们需要使用 IS NULLIS NOT NULL 来判断 NULL 值。

联系我们
预约咨询
微信咨询
电话咨询