Orden de múltiples columnas SQL
¿Cómo puedo ordenar varias columnas en SQL y en diferentes direcciones? Por ejemplo, la 'columna1' se ordenaría de forma descendente y la 'columna2' de forma ascendente.
ORDER BY column1 DESC, column2
Esto ordena todo column1
primero (descendente) y luego column2
(ascendente, que es el valor predeterminado) siempre que los column1
campos de dos o más filas sean iguales.
Las otras respuestas carecen de un ejemplo concreto, así que aquí va:
Dada la siguiente tabla de Personas :
FirstName | LastName | YearOfBirth
----------------------------------------
Thomas | Alva Edison | 1847
Benjamin | Franklin | 1706
Thomas | More | 1478
Thomas | Jefferson | 1826
Si ejecuta la siguiente consulta:
SELECT * FROM People ORDER BY FirstName DESC, YearOfBirth ASC
El conjunto de resultados se verá así:
FirstName | LastName | YearOfBirth
----------------------------------------
Thomas | More | 1478
Thomas | Jefferson | 1826
Thomas | Alva Edison | 1847
Benjamin | Franklin | 1706
SELECT *
FROM mytable
ORDER BY
column1 DESC, column2 ASC
El orden de varias columnas depende de los valores correspondientes de ambas columnas: aquí está mi ejemplo de tabla donde hay dos columnas nombradas con alfabetos y números y los valores en estas dos columnas son órdenes asc y desc .
Ahora realizo Ordenar por en estas dos columnas ejecutando el siguiente comando:
Ahora nuevamente inserto nuevos valores en estas dos columnas, donde el valor del alfabeto en orden ASC :
y las columnas de la tabla de ejemplo se ven así. Ahora nuevamente realiza la misma operación:
Puede ver que los valores de la primera columna están en orden descriptivo, pero la segunda columna no está en orden ASC.