sql >> Base de Datos >  >> RDS >> Mysql

ORDEN SQL POR múltiples columnas

Ordenando en un ORDER BY se realiza por la primera columna, y luego por cada columna adicional en la declaración especificada.

Por ejemplo, considere los siguientes datos:

Column1    Column2
=======    =======
1          Smith
2          Jones
1          Anderson
3          Andrews

La consulta

SELECT Column1, Column2 FROM thedata ORDER BY Column1, Column2

ordenaría primero por todos los valores en Column1

y luego ordenar las columnas por Column2 para producir esto:

Column1    Column2
=======    =======
1          Anderson
1          Smith
2          Jones
3          Andrews

En otras palabras, los datos se ordenan primero en Column1 orden, y luego cada subconjunto (Column1 filas que tienen 1 como su valor) se ordenan en el orden de la segunda columna.

La diferencia entre las dos declaraciones que publicaste es que las filas en la primera se ordenarían primero por prod_price (orden de precio, de menor a mayor), y luego por orden de nombre (lo que significa que si dos artículos tienen el mismo precio, el que tiene el valor alfa más bajo para el nombre aparecerá primero), mientras que el segundo se ordenará por nombre (lo que significa que los precios aparecerán en orden según el prod_name) sin tener en cuenta el precio).