- 类别:
IS [ NOT ] NULL¶
确定表达式是 NULL 还是非 NULL。
语法¶
<expr> IS [ NOT ] NULL
返回¶
返回 BOOLEAN。
指定 IS NULL 时,如果表达式为 NULL,则值为 TRUE。否则返回 FALSE。
当指定 IS NOT NULL 时,如果表达式不是 NULL,则值为 TRUE。否则返回 FALSE。
示例¶
创建 test_is_not_null
表并加载数据:
CREATE OR REPLACE TABLE test_is_not_null (id NUMBER, col1 NUMBER, col2 NUMBER);
INSERT INTO test_is_not_null (id, col1, col2) VALUES
(1, 0, 5),
(2, 0, NULL),
(3, NULL, 5),
(4, NULL, NULL);
在 test_is_not_null
表中显示数据:
SELECT *
FROM test_is_not_null
ORDER BY id;
+----+------+------+
| ID | COL1 | COL2 |
|----+------+------|
| 1 | 0 | 5 |
| 2 | 0 | NULL |
| 3 | NULL | 5 |
| 4 | NULL | NULL |
+----+------+------+
使用 IS NOT NULL 返回 col1
中的值不是 NULL 的行:
SELECT *
FROM test_is_not_null
WHERE col1 IS NOT NULL
ORDER BY id;
+----+------+------+
| ID | COL1 | COL2 |
|----+------+------|
| 1 | 0 | 5 |
| 2 | 0 | NULL |
+----+------+------+
使用 IS NULL 返回 col2
中值为 NULL 的行:
SELECT *
FROM test_is_not_null
WHERE col2 IS NULL
ORDER BY id;
+----+------+------+
| ID | COL1 | COL2 |
|----+------+------|
| 2 | 0 | NULL |
| 4 | NULL | NULL |
+----+------+------+
使用 IS NOT NULL 和 IS NULL 的组合,以返回满足以下 任一 条件的记录:
col1
中的值不是 NULL。col2
中的值是 NULL。
SELECT *
FROM test_is_not_null
WHERE col1 IS NOT NULL OR col2 IS NULL
ORDER BY id;
+----+------+------+
| ID | COL1 | COL2 |
|----+------+------|
| 1 | 0 | 5 |
| 2 | 0 | NULL |
| 4 | NULL | NULL |
+----+------+------+
使用 IS NOT NULL 和 IS NULL 的组合,返回满足以下 两个 条件的记录:
col1
中的值不是 NULL。col2
中的值是 NULL。
SELECT *
FROM test_is_not_null
WHERE col1 IS NOT NULL AND col2 IS NULL
ORDER BY id;
+----+------+------+
| ID | COL1 | COL2 |
|----+------+------|
| 2 | 0 | NULL |
+----+------+------+