TOP

Lección SQL 3. Ordenar datos (ORDER BY)

YouLibreCalc for Excel logo

En el futuro, es posible que necesitemos ordenar nuestra selección (alfabéticamente para texto o ascendente/descendente) para valores numéricos. Para tales fines, SQL tiene un operador especial ORDER BY.

El operador SQL ORDER BY puede ordenar tanto de menor a mayor, es decir, en orden ascendente, como en orden inverso, de mayor a menor.


1. Ordenar los datos seleccionados

Ordenemos toda nuestra tabla por la cantidad de ventas de productos, es decir, por la columna Cantidad.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount

Vemos que la consulta ordenó los registros en orden ascendente en el campo Monto. Es necesario observar la secuencia de disposición de los operadores, es decir, el operador ORDER BY debe ir al final de la solicitud. De lo contrario, se recibirá un mensaje de error.

Además, una característica del operador ORDER BY es que puede ordenar datos por un campo que no seleccionamos en la consulta, es decir, basta con que esté en la base de datos.

2. Ordenar por varios campos

Ahora ordenemos nuestro ejemplo adicionalmente por un campo más. Sea el campo City, que muestra el lugar de venta de los productos.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount, City

El orden de clasificación dependerá del orden de los campos de la solicitud. Es decir, en nuestro caso, los datos se ordenarán primero por la columna Importe y luego por City.

3. Dirección de clasificación

Aunque por defecto el operador ORDER BY ordena en orden ascendente, también podemos escribir los valores en orden descendente. Para ello, colocamos el operador DESC (que es una abreviatura de la palabra DESCENDENTE) al final de cada campo.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount DESC, City

En este ejemplo, los valores en el campo Monto se ordenaron en orden descendente y en el campo City, en orden ascendente. El operador DESC se aplica solo a una columna, por lo que, si es necesario, debe escribirse después de cada campo que participa en la clasificación.