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 colocarlo dentro de ORDER BY para ordenar las filas según 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
ENDObserva la forma más corta: CASE column WHEN value THEN .... Es equivalente a WHEN column = value. Usa la que se lea con mayor claridad.
Desafío
FácilTablas y columnas disponibles:
tasks:id,title,priority
Devuelve title y priority, ordenados de modo que 'critical' aparezca primero, después 'high', después 'low' y cualquier otro valor al final. Dentro de la misma prioridad, ordena por title alfabéticamente.
Pruébalo tú mismo
SELECT title, priority
FROM tasks
ORDER BY
-- Reemplaza el ordenamiento de marcador de posición a continuación con una expresión CASE que
-- clasifica las filas de la manera que describe la tarea, luego desempata alfabéticamente
id
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
1Lógica condicional
CASE WHENCASE en ORDER BYCOALESCE para valores NULLNULLIF e IIFRepaso - Asistencia2Funciones de cadenas
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE y TRIMConcatenar con ||Repaso - FacturasPractica por tu cuenta: Playground de SQL