CASE dans ORDER BY
Fait partie de la section Au-delà des bases du Journey SQL de Coddy — leçon 2 sur 27.
CASE n'est pas seulement destiné à SELECT. Vous pouvez le placer à l'intérieur de ORDER BY pour trier les lignes selon une règle personnalisée que les colonnes seules ne peuvent pas exprimer.
SELECT name, status
FROM tickets
ORDER BY
CASE status
WHEN 'urgent' THEN 1
WHEN 'high' THEN 2
WHEN 'normal' THEN 3
ELSE 4
ENDRemarquez la forme plus courte : CASE column WHEN value THEN .... C'est l'équivalent de WHEN column = value. Utilisez celle qui est la plus lisible.
Défi
FacileTables et colonnes disponibles :
<strong>tasks</strong>:<strong>id</strong>,<strong>title</strong>,<strong>priority</strong>
Retournez title et priority, ordonnés de sorte que 'critical' apparaisse en premier, puis 'high', puis 'low', et tout le reste en dernier. Pour une même priorité, triez par title par ordre alphabétique.
Aide-mémoire
Utilisez CASE à l'intérieur de ORDER BY pour trier selon une règle personnalisée :
SELECT name, status
FROM tickets
ORDER BY
CASE status
WHEN 'urgent' THEN 1
WHEN 'high' THEN 2
WHEN 'normal' THEN 3
ELSE 4
ENDLa forme courte CASE column WHEN value THEN ... est équivalente à CASE WHEN column = value THEN ....
Essayez vous-même
SELECT title, priority
FROM tasks
ORDER BY
-- ...
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Au-delà des bases
1Logique conditionnelle
CASE WHENCASE dans ORDER BYCOALESCE pour les NULLsNULLIF et IIFRécapitulatif - Présences