Ordinamento in un ORDER BY
viene eseguita dalla prima colonna e quindi da ogni colonna aggiuntiva nell'istruzione specificata.
Ad esempio, considera i seguenti dati:
Column1 Column2
======= =======
1 Smith
2 Jones
1 Anderson
3 Andrews
La domanda
SELECT Column1, Column2 FROM thedata ORDER BY Column1, Column2
prima ordina in base a tutti i valori in Column1
e poi ordina le colonne per Column2
per produrre questo:
Column1 Column2
======= =======
1 Anderson
1 Smith
2 Jones
3 Andrews
In altre parole, i dati vengono prima ordinati in Column1
ordine, quindi ogni sottoinsieme (Column1
righe che hanno 1
come valore) sono ordinati in base alla seconda colonna.
La differenza tra le due dichiarazioni che hai pubblicato è che le righe nella prima verrebbero ordinate prima per prod_price
(ordine di prezzo, dal più basso al più alto), e poi per ordine di nome (il che significa che se due articoli hanno lo stesso prezzo, quello con il valore alfa più basso per nome sarebbe elencato per primo), mentre il secondo ordinerebbe in ordine di nome solo (il che significa che i prezzi apparirebbero in ordine in base a prod_name
senza riguardo per il prezzo).