类别:

条件表达式函数

IS [ NOT ] NULL

确定表达式是 NULL 还是非 NULL。

语法

<expr> IS [ NOT ] NULL
Copy

返回

返回 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);
Copy

test_is_not_null 表中显示数据:

SELECT * 
  FROM test_is_not_null
  ORDER BY id;
Copy
+----+------+------+
| 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;
Copy
+----+------+------+
| 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;
Copy
+----+------+------+
| 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;
Copy
+----+------+------+
| 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;
Copy
+----+------+------+
| ID | COL1 | COL2 |
|----+------+------|
|  2 |    0 | NULL |
+----+------+------+
语言: 中文