sql >> Base de Datos >  >> RDS >> Database

¿Cómo ordenar por dos columnas en SQL?

Problema:

Debe mostrar los registros de una tabla determinada ordenados por dos columnas.

Ejemplo:

Nuestra base de datos tiene una tabla llamada employee con las siguientes columnas:id , first_name , last_name y salary .

id nombre apellido salario
1 Lisa Ulmán 3000
2 Ada Muller 2400
3 Tomás Verde 2400
4 Miguel Muller 3000
5 María Verde 2400

Vamos a mostrar toda la información de cada empleado, pero ordenemos los registros según el salario en orden descendente primero y luego por apellido en orden ascendente.

Solución:

SELECT id,  
  first_name,
  last_name,
  salary
FROM employee
ORDER BY salary DESC, last_name;

Esta consulta devuelve registros ordenados según dos columnas:salario y apellido .

<
id nombre apellido salario
4 Miguel M uller 3000
1 Lisa T soy 3000
3 Tomás G reen 2400
5 María G reen 2400
2 Ada M uller 2400

Discusión:

Si desea seleccionar registros de una tabla pero desea verlos ordenados según dos columnas, puede hacerlo con ORDER BY . Esta cláusula viene al final de su consulta SQL.

Después del ORDER BY palabra clave, agregue el nombre de la columna por la que le gustaría ordenar los registros primero (en nuestro ejemplo, salario). Luego, después de una coma, agregue la segunda columna (en nuestro ejemplo, last_name ). Puede modificar el orden de clasificación (ascendente o descendente) por separado para cada columna. Si desea usar un orden ascendente (de menor a mayor), puede usar el ASC palabra clave; Sin embargo, esta palabra clave es opcional, ya que ese es el orden predeterminado cuando no se especifica ninguno. Si desea utilizar un orden descendente, coloque el DESC palabra clave después de la columna correspondiente (en el ejemplo, usamos un orden descendente para el salary columna).

En nuestro ejemplo, primero ordenamos el resultado por salario en orden descendente (salarios más altos a los más bajos) y luego por apellido en orden ascendente dentro de los registros ya ordenados.