Leçon 7 / 9 — Chapitre 4: CASE WHEN et agrégation conditionnelle
CASE dans ORDER BY : un tri personnalisé
ORDER BY peut trier sur le résultat d'un CASE, pas seulement sur une colonne — utile pour imposer un ordre qui n'est ni alphabétique ni numérique naturel.
SELECT nom, statut
FROM clients
ORDER BY CASE WHEN statut = 'actif' THEN 0 ELSE 1 END, nom;
Le CASE attribue 0 aux clients actifs et 1 aux inactifs : trier dessus place donc tous les actifs avant tous les inactifs. La virgule ajoute nom comme second critère de tri, pour départager les lignes à égalité sur le premier critère (ici, toutes les lignes actives entre elles, puis toutes les inactives entre elles).
À retenir :
ORDER BYaccepte une expressionCASE, pas seulement le nom d'une colonne.- Attribuer des nombres via
CASE(0, 1, 2...) permet d'imposer un ordre personnalisé, différent de l'ordre alphabétique ou numérique naturel des valeurs d'origine. - Un second critère de tri (ici
nom) départage les lignes à égalité sur le premier.
À vous de jouer : combien de lignes ont la valeur 0 (statut actif) dans ce tri, et apparaissent donc en premier ?
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