Menu
Coddy logo textTech

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 réservé qu'à SELECT. Vous pouvez le placer à l'intérieur de ORDER BY pour trier les rows selon une règle personnalisée that 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
    END

Remarquez la forme plus courte : CASE column WHEN value THEN .... C'est équivalent à WHEN column = value. Utilisez celle qui se lit le plus clairement.

challenge icon

Défi

Facile

Tables et colonnes disponibles :

  • <strong>tasks</strong> : <strong>id</strong>, <strong>title</strong>, <strong>priority</strong>

Retournez title et priority, ordonnés de manière à ce que 'critical' vienne en premier, puis 'high', puis 'low', et tout le reste en dernier. Au sein d'une même priorité, triez par title par 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
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Playground SQL