← SQL avancé
Leçon 3 / 9 — Chapitre 4: CASE WHEN et agrégation conditionnelle
CASE imbriqué
Un CASE peut contenir un autre CASE comme résultat d'une de ses branches — utile pour affiner une catégorie déjà déterminée par une première condition.
SELECT nom,
CASE
WHEN statut = 'actif' THEN
CASE WHEN montant >= 100 THEN 'gros actif' ELSE 'petit actif' END
ELSE 'inactif'
END AS segment
FROM clients WHERE id = 2;
Pour ce client (statut = 'actif', montant = 85.2) : la condition externe statut = 'actif' est vraie, ce qui déclenche l'évaluation du CASE interne. montant >= 100 y est fausse (85.2 < 100), donnant 'petit actif'.
À retenir :
- Un
CASEpeut être imbriqué dans une branche d'un autreCASE, pour affiner une classification en plusieurs étapes. - Le
CASEinterne n'est évalué que si la branche externe qui le contient est atteinte — ici, uniquement pour les clients actifs. - Décomposer l'évaluation de l'extérieur vers l'intérieur (comme pour toute expression imbriquée) permet de suivre le résultat sans se perdre.
À vous de jouer : appliquez cette même formule au client d'id 1 (statut actif, montant 120.456).
🔒
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 80 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès