CASE dans ORDER BY
Fait partie de la section Au-delà des bases du Journey SQL de Coddy. Leçon 2 sur 27.
CASE ne sert pas uniquement avec SELECT. Vous pouvez le placer dans ORDER BY pour trier les lignes selon une règle personnalisée que les colonnes seules ne permettent pas d'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 .... Elle équivaut à WHEN column = value. Utilisez celle qui se lit le plus clairement.
Défi
FacileTables et colonnes disponibles :
tasks:id,title,priority
Renvoyez title et priority, dans l’ordre suivant : 'critical' en premier, puis 'high', ensuite 'low', et toute autre valeur en dernier. Pour une même priorité, triez par title dans l’ordre alphabétique.
Essayez vous-même
SELECT title, priority
FROM tasks
ORDER BY
-- Remplacez l'ordonnancement placeholder ci-dessous par une expression CASE qui
-- classe les lignes de la manière décrite par la tâche, puis départage les égalités par ordre alphabétique
id
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 NULLNULLIF et IIFRécapitulatif - PrésenceEntraînez-vous par vous-même : Playground SQL