Sorteren in een ORDER BY
wordt gedaan door de eerste kolom en vervolgens door elke extra kolom in de opgegeven instructie.
Denk bijvoorbeeld aan de volgende gegevens:
Column1 Column2
======= =======
1 Smith
2 Jones
1 Anderson
3 Andrews
De vraag
SELECT Column1, Column2 FROM thedata ORDER BY Column1, Column2
zou eerst sorteren op alle waarden in Column1
en sorteer de kolommen vervolgens op Column2
om dit te produceren:
Column1 Column2
======= =======
1 Anderson
1 Smith
2 Jones
3 Andrews
Met andere woorden, de gegevens worden eerst gesorteerd in Column1
volgorde, en vervolgens elke subset (Column1
rijen met 1
als hun waarde) worden gesorteerd in volgorde van de tweede kolom.
Het verschil tussen de twee uitspraken die je hebt gepost, is dat de rijen in de eerste eerst worden gesorteerd op prod_price
(prijsvolgorde, van laag naar hoog), en vervolgens op volgorde van naam (wat betekent dat als twee artikelen dezelfde prijs hebben, degene met de lagere alfawaarde voor naam als eerste wordt vermeld), terwijl de tweede op naamvolgorde wordt gesorteerd alleen (wat betekent dat de prijzen in volgorde verschijnen op basis van de prod_name
zonder rekening te houden met de prijs).