Classificando em um
ORDER BY
é feito pela primeira coluna e, em seguida, por cada coluna adicional na instrução especificada. Por exemplo, considere os seguintes dados:
Column1 Column2
======= =======
1 Smith
2 Jones
1 Anderson
3 Andrews
A pergunta
SELECT Column1, Column2 FROM thedata ORDER BY Column1, Column2
primeiro classificaria por todos os valores em
Column1
e, em seguida, classifique as colunas por
Column2
para produzir isso:Column1 Column2
======= =======
1 Anderson
1 Smith
2 Jones
3 Andrews
Em outras palavras, os dados são classificados primeiro em
Column1
ordem e, em seguida, cada subconjunto (Column1
linhas que têm 1
como seu valor) são classificados na ordem da segunda coluna. A diferença entre as duas declarações que você postou é que as linhas na primeira seriam classificadas primeiro por
prod_price
(ordem de preço, do menor para o maior) e, em seguida, por ordem de nome (o que significa que, se dois itens tiverem o mesmo preço, aquele com o menor valor alfa para o nome será listado primeiro), enquanto o segundo classificará por ordem de nome apenas (o que significa que os preços apareceriam em ordem com base no prod_name
independentemente do preço).