Tema SQL
ORDER BY
Impone un orden total o parcial entre las filas del resultado. Sin ORDER BY, el orden de filas no está garantizado salvo detalles del plan o clustered index.
Descripción
ORDER BY se aplica al conjunto ya producido por SELECT (y HAVING si existe). Puede usar columnas del resultado, alias del SELECT en algunos motores, expresiones o números de posición (poco recomendable). ASC/DESC por clave; varias claves desempatan en secuencia. NULLS FIRST/LAST existe en PostgreSQL y similares. Con LIMIT/OFFSET, el orden define qué filas se consideran «primeras». En conjuntos enormes, ordenar sin necesidad aumenta coste.
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
SELECT ...
FROM ...
[ WHERE ... ]
ORDER BY expresión [ ASC | DESC ] [, ... ];
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- ORDER BY
- Una o más claves; cada una puede tener COLLATE para orden lingüístico.
- NULLS FIRST/LAST
- Extensión en algunos motores para controlar la posición de NULL en la secuencia de ordenación.
Ejemplos
Ejemplo 1
SELECT nombre, creado_en
FROM usuarios
ORDER BY creado_en DESC, nombre ASC;
Ejemplo 2
SELECT id FROM usuarios ORDER BY id DESC LIMIT 3;
Temas relacionados
Enlaces internos para seguir leyendo: SELECT, WHERE, JOIN, GROUP BY y el resto de la referencia SQL.
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.