PaliSkill
← SQL avancé

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 BY accepte une expression CASE, 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 l'attestation finale.

8 500 XOF / 12,96 € / 14,12 $

Débloquez les 87 leçons restantes de ce module

Pour vous communiquer où envoyer le paiement.

Moyen de paiement souhaité

Nous vous contactons pour le paiement — activé dès réception.