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 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