IOKELU
Nivel: Avanzado
💡 Prueba las consultas:
Puedes ejecutar cualquier consulta avanzada en nuestra consola interactiva: Abrir consola SQL →

ORDER BY avanzado: ordenación profesional de datos

En SQL avanzado, ORDER BY se convierte en una herramienta poderosa: ordenación múltiple, condicional, por expresiones, por funciones ventana y más. Aquí aprenderás a controlar el orden de tus resultados con precisión quirúrgica.

1. Ordenación múltiple


SELECT nombre, categoria, precio
FROM productos
ORDER BY categoria ASC, precio DESC;
    

2. ORDER BY con expresiones


SELECT nombre, precio, precio * 1.21 AS precio_con_iva
FROM productos
ORDER BY precio * 1.21 DESC;
    

3. ORDER BY con CASE

Permite ordenar según condiciones personalizadas.


SELECT nombre, estado
FROM pedidos
ORDER BY CASE
            WHEN estado = 'Enviado' THEN 1
            WHEN estado = 'Pendiente' THEN 2
            ELSE 3
         END;
    

4. NULLS FIRST / NULLS LAST


SELECT nombre, descuento
FROM productos
ORDER BY descuento DESC NULLS LAST;
    

5. ORDER BY dentro de OVER()


SELECT fecha, ventas,
       SUM(ventas) OVER(ORDER BY fecha) AS acumulado
FROM ventas_diarias;
    

6. Ejemplos prácticos


-- Ordenación por longitud del nombre
SELECT nombre
FROM usuarios
ORDER BY LENGTH(nombre);

-- Ordenación por prioridad personalizada
SELECT tarea, prioridad
FROM tareas
ORDER BY CASE prioridad
            WHEN 'Alta' THEN 1
            WHEN 'Media' THEN 2
            ELSE 3
         END;

-- Ordenación por fecha más reciente
SELECT *
FROM logs
ORDER BY fecha DESC;
    

7. Ejercicios para practicar

8. Mini‑proyecto: Ordenación inteligente de pedidos


SELECT usuario, producto, estado, fecha,
       CASE
           WHEN estado = 'Enviado' THEN 1
           WHEN estado = 'Pendiente' THEN 2
           ELSE 3
       END AS prioridad
FROM pedidos
ORDER BY prioridad ASC, fecha DESC;
    

9. Errores comunes

10. Preguntas frecuentes

¿ORDER BY puede usar índices?

Sí, si coincide con el orden del índice.

¿ORDER BY afecta el rendimiento?

Sí, especialmente en tablas grandes.


Siguiente guía

SQL Avanzado – CTE →