Por defecto, los resultados de una consulta SQL no tienen un orden garantizado. Pueden aparecer en el orden en que fueron insertados, o en cualquier otro. Si necesitas que los datos aparezcan ordenados — del más barato al más caro, del más reciente al más antiguo, o alfabéticamente — usas ORDER BY.
¿Para qué sirve ORDER BY?
ORDER BY ordena los resultados de una consulta según una o más columnas. Puedes ordenar de forma ascendente (de menor a mayor, de A a Z) o descendente (de mayor a menor, de Z a A).
Sintaxis
SELECT columnas
FROM tabla
ORDER BY columna ASC; -- ascendente (por defecto)
SELECT columnas
FROM tabla
ORDER BY columna DESC; -- descendente
ASC es el valor por defecto, así que puedes omitirlo si quieres orden ascendente.
Ejemplo 1: ordenar números de menor a mayor
Quieres ver los empleados ordenados por salario, del más bajo al más alto:
SELECT nombre, salario
FROM empleados
ORDER BY salario ASC;
| nombre | salario |
|---|---|
| Carlos López | 2800 |
| Ana García | 3000 |
| Luis Pérez | 3200 |
| María Torres | 4500 |
Ejemplo 2: ordenar de mayor a menor
Quieres ver los productos más caros primero:
SELECT nombre, precio
FROM productos
ORDER BY precio DESC;
| nombre | precio |
|---|---|
| Laptop | 850000 |
| Monitor | 320000 |
| Teclado | 45000 |
Ejemplo 3: ordenar por múltiples columnas
Puedes ordenar por más de una columna. Si dos filas tienen el mismo valor en la primera columna, el orden lo decide la segunda:
SELECT nombre, departamento, salario
FROM empleados
ORDER BY departamento ASC, salario DESC;
Primero ordena por departamento (A-Z) y dentro de cada departamento, los salarios de mayor a menor.
Combinar con WHERE
ORDER BY va siempre al final de la consulta, después de WHERE:
SELECT nombre, salario
FROM empleados
WHERE departamento = 'Tecnología'
ORDER BY salario DESC;
Errores frecuentes
Poner ORDER BY antes de WHERE: El orden correcto es SELECT → FROM → WHERE → ORDER BY. Invertirlo genera un error de sintaxis.
Olvidar especificar ASC o DESC en varias columnas: Si ordenas por múltiples columnas, debes especificar el orden para cada una: ORDER BY columna1 DESC, columna2 ASC.
Aprende haciendo, no solo leyendo
Leer es el primer paso. El verdadero aprendizaje ocurre cuando practicas con ejercicios reales de SQL y recibes corrección inmediata de IA.
Comenzar gratis →