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).