Categorias:

Funções de expressão condicional

IS [ NOT ] NULL

Determina se uma expressão é NULL ou não é NULL.

Sintaxe

<expr> IS [ NOT ] NULL
Copy

Retornos

Retorna um BOOLEAN.

  • Quando IS NULL for especificado, o valor será TRUE se a expressão for NULL. Caso contrário, retorna FALSE.

  • Quando IS NOT NULL for especificado, o valor será TRUE se a expressão não for NULL. Caso contrário, retorna FALSE.

Exemplos

Criar a tabela test_is_not_null e carregar os dados:

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

Mostrar os dados na tabela 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 |
+----+------+------+

Usar IS NOT NULL para retornar as linhas para as quais os valores em col1 não são 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 |
+----+------+------+

Usar IS NULL para retornar as linhas para as quais os valores em col2 são NULL:

SELECT * 
  FROM test_is_not_null 
  WHERE col2 IS NULL
  ORDER BY id;
Copy
+----+------+------+
| ID | COL1 | COL2 |
|----+------+------|
|  2 |    0 | NULL |
|  4 | NULL | NULL |
+----+------+------+

Use uma combinação de IS NOT NULL e IS NULL para retornar as linhas para as quais qualquer das seguintes condições é atendida:

  • Os valores em col1 não são NULL.

  • Os valores em col2 são 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 |
+----+------+------+

Use uma combinação de IS NOT NULL e IS NULL para retornar as linhas para as quais ambas as seguintes condições são atendidas:

  • Os valores em col1 não são NULL.

  • Os valores em col2 são 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 |
+----+------+------+