Gestion des NULL (PostgreSQL)

De knowledge
Aller à la navigation Aller à la recherche

Les NULLS sont parfois difficile a utiliser en SQL. Voici un récapitulatif pour PostgreSQL (mais probablement valables pour d'autres)

COALESCE(val1, val2, ..., valN)

Renvoie la première valeur non nulle.

Exemple:

SELECT COALESCE(NULL, NULL, 'valeur', 'autre'); -- Résultat : 'valeur'

NULLIF(val1, val2)

Renvoie NULL si val1 = val2, sinon renvoie val1.

Exemple:

SELECT NULLIF(5, 5); -- Résultat : NULL
SELECT NULLIF(5, 3); -- Résultat : 5

IS NULL / IS NOT NULL

Teste si une valeur est nulle ou non.

Exemple:

SELECT * FROM table WHERE colonne IS NULL;
SELECT * FROM table WHERE colonne IS NOT NULL;

CASE WHEN ... THEN ... ELSE ... END

Permet de gérer des conditions plus complexes.

Exemple:

SELECT
CASE
WHEN score IS NULL THEN 'Pas de note'
WHEN score >= 10 THEN 'Réussi'
ELSE 'Échoué'
END AS résultat
FROM examens;

Note:

PostgreSQL ne supporte pas IFNULL ou NVL. Utilisez COALESCE ou CASE.