Ordenamiento de resultados con ORDER BY en SQL

Ordenamiento de resultados con ORDER BY en SQL

La cláusula ORDER BY de SQL se utiliza para ordenar los resultados de una consulta en un orden específico. La cláusula se coloca al final de la consulta, después de la cláusula FROM, o WHERE si la hay.


Te dejo en esta página unos cuantos ejercicios relacionados con el tema para que practiques un poco.

Sintaxis de ORDER BY de SQL

Esta sería la sintaxis correspondiente a ORDER BY sin usar la cláusula WHERE.

Las partes entre corchetes son opcionales y si las usas, debes elegir una de las dos en cada columna.

SELECT columna1, columna2, ...
FROM nombre_tabla
ORDER BY columna1 [ASC|DESC], columna2 [ASC|DESC], ...

Si se utiliza la cláusula WHERE, la sintaxis es la siguiente:

SELECT columna1, columna2, ...
FROM nombre_tabla
WHERE condición
ORDER BY columna1 [ASC|DESC], columna2 [ASC|DESC], ...

ORDER BY sin WHERE en SQL

En el siguiente ejemplo, estoy seleccionando todas las columnas de la tabla city y la ordeno con ORDER BY alfabéticamente por nombre de ciudad.

SELECT *
FROM city
ORDER BY Name;
order by sin where SQL

Si te fijas, empieza por un resultado con un corchete y luego otro con un acento. Esto es porque los símbolos están antes que las letras en el orden ascendente.

El uso de ASC y DESC con ORDER BY

ORDER BY ASC

Por defecto, en la consulta, se pasa un valor ASC al ordenar con ORDER BY. La consulta anterior es lo mismo que escribir esto:

SELECT *
FROM city
ORDER BY Name ASC;
ORDER BY ASC sql

Entonces, sabemos que ORDER BY se ordena en orden ascendente de menor a mayor, de ahí lo de ASC (ASCending).

ORDER BY DESC

Si quieres invertir el orden, lo puedes hacer con la palabra DESC que viene de descendente (DESCending).

SELECT *
FROM city
ORDER BY Name DESC;
ORDER BY desc

Múltiples ordenamientos con ASC y DESC


Se pueden establecer varios ordenamientos a la vez. Por ejemplo, supón que viajas al pasado y estás desarrollando un programa para Blockbuster. En él, quieres añadir una funcionalidad para buscar películas.

Por ejemplo, el cliente te pide que le muestres las películas más largas que hay en la tienda y que sean para todos los públicos. Entonces, el código de consulta en la base de datos para esa funcionalidad, sería el siguiente:

SELECT * 
FROM film
ORDER BY rating ASC, length DESC;
Múltiples ordenamientos con ASC y DESC con order by

Primero, se ordenan las películas por calificación (rating) de la menor a la mayor (G es todos los públicos (General audiences)). Después de establecer ese orden, te da las más largas de esa calificación en orden descendente.

ORDER BY con algunas columnas

El filtrado anterior está muy bien, pero tenemos mucha información que, en ese momento, no necesitamos. Se puede especificar en el SELECT que aparezcan solo las columnas que nos interesen. Por ejemplo, film_id, title, length y rating (ID para tener al menos el código de la película y title para poder ver que película es).

ORDER BY con algunas columnas

ORDER BY con WHERE en SQL

Gracias a la cláusula condicional WHERE, se pueden filtrar los datos ordenados. Si la ponemos, vendrá antes del ORDER BY, después del FROM.

Por ejemplo, vamos a mostrar de la base de datos world, todas las filas de ciudades solo de México y le daremos un orden descendente en número de población.

SELECT Name, Population
FROM city 
WHERE CountryCode = 'MEX' 
ORDER BY Population DESC;
ORDER BY con where en sql

No te pierdas nada del curso Máster en SQL.

Te dejo en esta página unos cuantos ejercicios relacionados con el tema para que practiques un poco.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

curso sql Entrada anterior Ejercicios resueltos para practicar SQL
curso sql Entrada siguiente El uso de los alias SQL