Aprende SQL: aprendersql.com es un curso guiado gratuito de SQL. Este curso de sql para principiantes esta pensado para que aprendas este lenguaje de consulta de bases de datos desde cero paso a paso y con ejemplos. Tambien puedes consultar nuestro manual de referencia.

Curso SQL Referencias Comunidad
← Lecciones

Leccion 8 - Ordenar datos con ORDER BY

Tiempo estimado de lectura: 2 minutos

Muchas veces ocurre que necesitamos podemos tener los datos organizados para facilitar el analisis del resultado de una consulta. Por ejemplo basandonos en nuestra tabla de ejemplo Empleados, podemos querer obtener los resultados de hacer una consulta sobre la tabla de manera que podamos ver el listado de empleados ordenados alfabeticamente por Nombre y Apellidos, o quizas incluso obtener los resultados ordenados por fecha de ingreso en la empresa. Esto puede ser util a la hora de analizar datos o simplemente como un reporte como entregable para alguien que vaya a trabajar con estos datos tras solicitarnoslo a nosotros.

Uso de ORDER BY

Ordenar datos con SQL es muy sencillo. Tan solo debemos utilizar el clause (comando) ORDER BY en la ultima parte de nuestra consulta SELECT e indicar los campos separados por comas por los que queremos obtener el ordenamiento del dataset resultado.

Por ejemplo, teniendo nuestra tabla de ejemplo Empleados que hemos visto anteriormente, queremos ver los datos ordenados por Nombre de los empleados, de esta manera escribiremos y lanzaremos la siguiente consulta.

SELECT *
FROM Empleados
ORDER BY Nombre

Por defecto el ordenamiento de los campos utilizados, si no indicamos lo contrario, se realiza de manera ascendente, esto es alfabeticamente de A a Z en caso de cadenas, y de menor a mayor en caso de datos numericos y de fecha.

Tambien podriamos haber escrito la consulta anterior indicando el orden que queremos como a continuacion.

SELECT *
FROM Empleados 
ORDER BY Nombre ASC 

La palabra clave tras el campo Nombre indica ordenamiento del campo de manera ascendente, en este caso, el ordenamiento es alfabeticamente de A a Z.

Si por el contrario quisieramos ordenar de Z a A, es decir, de manera descendente, tendremos que utilizar la palabra clave DESC. Por ejemplo, si en vez de ordenar alfabeticamente nuestra tabla Empleados por el campo Nombre lo quisieramos hacer de manera descendente, debemos escribir la siguiente consulta.

SELECT *
FROM Empleados
ORDER BY Nombre DESC 

Facil verdad?

Y que ocurre si queremos poder ordenar utilizando dos o mas campos, es sencillo, tan solo deberemos añadir el campo por el que tambien queremos ordenar indicando si el orden que queremos es ascendente o descente. Por ejemplo, ahora queremos ordenar la tabla empleados por Nombre y Apellido, ambas de manera ascendente, para ello escribiremos la siguiente consulta.

SELECT *
FROM Empleados
ORDER BY Nombre, Apellido 

En este caso el dataset resultado aparece ordenado primero por la columna Nombre y asi mismo por apellido.

Si quisieramos ordenar primero por Apellido y luego por nombre, entonces tenemos primero que incluir en el ORDER BY el campo Apellido y despues separado por una coma el campo Nombre.

SELECT *
FROM Empleados
ORDER BY Apellido, Nombre