PaliSkill
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 CASE peut être imbriqué dans une branche d'un autre CASE, pour affiner une classification en plusieurs étapes.
  • Le CASE interne 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