NULLIF et IIF
Fait partie de la section Au-delà des bases du Journey SQL de Coddy — leçon 4 sur 27.
Deux autres helpers conditionnels, tous deux petits et utiles.
NULLIF(a, b) retourne NULL quand a = b, sinon a. L'utilisation classique consiste à se protéger contre la division par zéro :
SELECT total / NULLIF(count, 0) AS average
FROM statsSi count vaut zéro, nous obtenons NULL au lieu d'une erreur.
IIF(cond, a, b) est un raccourci à deux branches pour CASE WHEN cond THEN a ELSE b END. Utilisez-le lorsque le choix est binaire ; utilisez CASE lorsqu'il y a plus de branches.
Défi
FacileTables et colonnes disponibles :
<strong>matches</strong>:<strong>id</strong>,<strong>shots</strong>,<strong>goals</strong>
Pour chaque match, retournez :
idconversion:goals * 1.0 / shots, maisNULLquandshotsest0(utilisezNULLIF)verdict:'win'quandgoals > 0, sinon'no goals'(utilisezIIF)
Triez par id.
Aide-mémoire
NULLIF(a, b) retourne NULL quand a = b, sinon retourne a. Utile pour éviter la division par zéro :
SELECT total / NULLIF(count, 0) AS average
FROM statsIIF(cond, a, b) est un raccourci pour un CASE à deux branches :
SELECT IIF(goals > 0, 'win', 'no goals') AS verdict
FROM matchesEssayez vous-même
SELECT id,
-- conversion avec NULLIF
-- verdict avec IIF
FROM matches
ORDER BY id
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Au-delà des bases
1Logique conditionnelle
CASE WHENCASE dans ORDER BYCOALESCE pour les NULLsNULLIF et IIFRécapitulatif - Présences