Consultas · orden del resultado

ORDER BY

ORDER BY es la cláusula que convierte un conjunto sin orden garantizado en un resultado presentado con criterios explícitos.

Lectura: 5–7 minEjemplo comprobadoPráctica con pistas
Contenido de esta guía

Por qué necesitas ORDER BY

Sin ORDER BY, SQL no garantiza el orden de las filas. Que una consulta parezca devolver siempre los datos por id no convierte ese comportamiento en un contrato.

ORDER BY se aplica al resultado final. Puede ordenar por columnas, alias o expresiones y admite varios criterios de izquierda a derecha.

Sintaxis

Estructura
SELECT columnas
FROM tabla
ORDER BY criterio_1 [ASC | DESC],
         criterio_2 [ASC | DESC];

ASC ordena de menor a mayor y suele ser el valor predeterminado. DESC invierte el sentido. El segundo criterio solo resuelve empates del primero.

Ejemplo guiado: ordenar por stock

SQL
SELECT nombre,
       stock
FROM productos
ORDER BY stock ASC, nombre ASC
LIMIT 5;
Primeras cinco filas
nombrestock
Altavoz0
Portátil Pro0
Monitor 272
Monitor 244
Teclado7

Altavoz y Portátil Pro empatan con stock cero. nombre ASC decide un orden reproducible dentro de ese empate.

Un orden estable necesita una clave única al final. Para paginar, exportar o comparar resultados, añade id como último criterio cuando los anteriores puedan repetirse.

Ordenar por alias o expresiones

Valor calculado
SELECT nombre,
       precio * stock AS valor_stock
FROM productos
ORDER BY valor_stock DESC, id;

Usar el alias evita repetir la expresión y hace más legible la intención. La disponibilidad de alias en ORDER BY es común, aunque las reglas exactas se complican en consultas de conjuntos.

Dónde aparecen los valores NULL

La posición predeterminada de NULL no es idéntica en todos los motores. PostgreSQL admite NULLS FIRST y NULLS LAST; otros motores requieren una expresión adicional. Si la posición de los nulos importa, no confíes en el valor predeterminado.

Errores frecuentes

Limitar antes de definir un orden suficiente

LIMIT 10 sin un orden estable no significa “los primeros diez” en un sentido reproducible.

Ordenar por posición

ORDER BY 2 es válido en varios motores, pero se rompe silenciosamente si cambia la lista de columnas. Preferir nombres o alias mejora el mantenimiento.

Práctica: pedidos de mayor importe

Básica · orden y desempate

Muestra los cuatro pedidos más altos

Devuelve id, estado y total. Ordena el total de mayor a menor y usa el id ascendente para resolver empates.

Compatibilidad entre motores

ORDER BY, ASC y DESC son comunes. La sintaxis para controlar nulos y limitar filas cambia. SQL Server integra la paginación mediante OFFSET y FETCH dentro de ORDER BY.

Qué debes recordar

  • Sin ORDER BY no hay orden garantizado.
  • Los criterios se aplican de izquierda a derecha.
  • Añade una clave única para resolver todos los empates.
  • Define un orden estable antes de limitar o paginar.

Para requisitos más específicos, puedes controlar la posición de NULL con NULLS FIRST/LAST o construir un orden personalizado con CASE.

Conceptos relacionados

Fuentes técnicas consultadas