- カテゴリ:
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 |
+----+------+------+
col1 内の値が NULL ではない行を返すには、 IS NOT NULL を使用します。
SELECT * 
  FROM test_is_not_null 
  WHERE col1 IS NOT NULL
  ORDER BY id;
+----+------+------+
| ID | COL1 | COL2 |
|----+------+------|
|  1 |    0 |    5 |
|  2 |    0 | NULL |
+----+------+------+
col2 内の値が NULL である行を返すには、 IS 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 |
+----+------+------+