Catégories :

Fonctions d’expressions conditionnelles

IS [ NOT ] NULL

Détermine si une expression est NULL ou n’est pas NULL.

Syntaxe

<expr> IS [ NOT ] NULL
Copy

Renvoie

Renvoie une valeur BOOLEAN.

  • Lorsque IS NULL est spécifié, la valeur est TRUE si l’expression est NULL. Sinon, renvoie FALSE.

  • Lorsque IS NOT NULL est spécifié, la valeur est TRUE si l’expression n’est pas NULL. Sinon, renvoie FALSE.

Exemples

Créez la table test_is_not_null et chargez les données :

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

Affichez les données dans la table 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 |
+----+------+------+

Utilisez IS NOT NULL pour renvoyer les lignes pour lesquelles les valeurs de col1 ne sont pas 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 |
+----+------+------+

Utilisez IS NULL pour renvoyer les lignes pour lesquelles les valeurs de col2 sont NULL :

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

Utilisez une combinaison de IS NOT NULL et de IS NULL pour renvoyer les lignes pour lesquelles l’une ou l’autre des conditions suivantes est remplie :

  • Les valeurs de col1 ne sont pas NULL.

  • Les valeurs de col2 sont 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 |
+----+------+------+

Utilisez une combinaison de IS NOT NULL et de IS NULL pour renvoyer les lignes pour lesquelles les deux conditions suivantes sont remplies :

  • Les valeurs de col1 ne sont pas NULL.

  • Les valeurs de col2 sont 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 |
+----+------+------+