Menu
Coddy logo textTech

CASE en ORDER BY

Parte de la sección Más allá de lo básico del Journey de SQL de Coddy — lección 2 de 27.

CASE no es solo para SELECT. Puedes ponerlo dentro de ORDER BY para ordenar filas mediante una regla personalizada que las columnas por sí solas no pueden expresar.

SELECT name, status
FROM tickets
ORDER BY
    CASE status
        WHEN 'urgent' THEN 1
        WHEN 'high'   THEN 2
        WHEN 'normal' THEN 3
        ELSE 4
    END

Observa la forma más corta: CASE column WHEN value THEN .... Es equivalente a WHEN column = value. Usa la que se lea con mayor claridad.

challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

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

Devuelve title y priority, ordenados de manera que 'critical' aparezca primero, luego 'high', después 'low', y cualquier otra cosa al final. Dentro de la misma prioridad, ordena por title alfabéticamente.

Hoja de referencia

Usa CASE dentro de ORDER BY para ordenar mediante una regla personalizada:

SELECT name, status
FROM tickets
ORDER BY
    CASE status
        WHEN 'urgent' THEN 1
        WHEN 'high'   THEN 2
        WHEN 'normal' THEN 3
        ELSE 4
    END

La forma abreviada CASE column WHEN value THEN ... es equivalente a CASE WHEN column = value THEN ....

Pruébalo tú mismo

SELECT title, priority
FROM tasks
ORDER BY
    -- ...
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Más allá de lo básico