Problema:
Le gustaría ordenar el resultado de una consulta SQL en orden ascendente o descendente.
Ejemplo:
Nuestra base de datos tiene una tabla llamada salary_information
con datos en las columnas id
, first_name
, last_name
y monthly_earnings
. Queremos ordenar a los empleados por sus monthly_earnings
en orden descendente.
id | nombre | apellido | ganancias_mensuales |
---|---|---|---|
1 | Calvino | Ríos | 3500 |
2 | Alan | Paterson | 4000 |
3 | Kurt | Evans | 2300 |
4 | Álex | Watkins | 5500 |
Solución:
Usaremos un ORDER BY
cláusula. Aquí está la consulta:
Usaremos la función CURRENT_DATE
para obtener la fecha actual:
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY monthly_earnings DESC
Aquí está el resultado de la consulta:
nombre | apellido | ganancias_mensuales |
---|---|---|
Álex | Watkins | 5500 |
Alan | Paterson | 4000 |
Calvino | Ríos | 3500 |
Kurt | Evans | 2300 |
Ahora, podemos ver que Alex Watkins es el primero en la lista, lo que significa que gana la mayor cantidad de dinero.
Discusión:
Usa un ORDER BY
cláusula si desea ordenar el conjunto de datos en orden ascendente o descendente. La sintaxis de un ORDER BY
cláusula es la siguiente:
SELECT col1, col2, … FROM table ORDER BY col1, col2, … ASC|DESC;
En lo anterior, ASC|DESC
significa que debe elegir la palabra clave ASC
(ascendente) o DESC
(descendente) para ordenar el conjunto de datos de la manera que desee.
Además de ordenar por columnas numéricas, también puede ordenar por columnas de texto. Un ORDER BY
la cláusula ordenará las columnas de texto en orden alfabético.
En lugar del nombre de la columna, también puede usar la posición de la columna contando desde la izquierda. Entonces, en nuestro ejemplo, en lugar de escribir:
ORDER BY monthly_earnings DESC
también puedes escribir:
ORDER BY 3 DESC
Si desea ordenar la tabla del ejemplo por first_name
columna en orden alfabético (ascendente), puede utilizar la siguiente consulta:
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY first_name ASC
También vale la pena señalar que puede ordenar por varias columnas. Esto es útil cuando se repiten algunos valores en una columna determinada y necesita una clasificación adicional. En este caso, separe los nombres de las columnas con comas en la cláusula ORDER BY.
Incluso puede ordenar en orden ascendente por una columna y en orden descendente por otra. A continuación se ilustra la sintaxis de esta combinación:
ORDER BY Col1 ASC, Col2 DESC;
Si omite el ASC
o DESC
palabra clave, se realiza una ordenación ascendente por defecto.