IS NULL

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

注意事项

使用等号(

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

语法

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

其中,

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

示例

假设我们有一个名为

student
student
的表,其中包含以下数据:

idnamegender
1AliceF
2BobM
3CathyF
4DavidNULL
  1. 现在,我们想要从

    student
    student
    表中查询性别为
    NULL
    NULL
    的学生,我们可以使用以下 SQL 语句:

    SELECT * FROM student WHERE gender IS NULL;

    结果集如下:

idnamegender
4DavidNULL
  1. 如果我们想要查询性别不为

    NULL
    NULL
    的学生,我们可以使用以下 SQL 语句:

    SELECT * FROM student WHERE gender IS NOT NULL;

    结果集如下:

idnamegender
1AliceF
2BobM
3CathyF

常见问题

Q: 为什么使用等号(

=
=
)判断
NULL
NULL
值无法得到预期结果?

A: 这是因为

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

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