Sortieren in einem ORDER BY
erfolgt durch die erste Spalte und dann durch jede weitere Spalte in der angegebenen Anweisung.
Betrachten Sie beispielsweise die folgenden Daten:
Column1 Column2
======= =======
1 Smith
2 Jones
1 Anderson
3 Andrews
Die Abfrage
SELECT Column1, Column2 FROM thedata ORDER BY Column1, Column2
zuerst nach allen Werten in Column1
sortieren
und dann die Spalten nach Column2
sortieren um dies zu produzieren:
Column1 Column2
======= =======
1 Anderson
1 Smith
2 Jones
3 Andrews
Das heißt, die Daten werden zuerst in Column1
sortiert Reihenfolge und dann jede Teilmenge (Column1
Zeilen mit 1
als Wert) werden in der Reihenfolge der zweiten Spalte sortiert.
Der Unterschied zwischen den beiden von Ihnen geposteten Anweisungen besteht darin, dass die Zeilen in der ersten zuerst nach prod_price
sortiert werden (Preisreihenfolge, vom niedrigsten zum höchsten) und dann nach Namen (d. h., wenn zwei Artikel denselben Preis haben, wird der mit dem niedrigeren Alpha-Wert für den Namen zuerst aufgeführt), während der zweite nach Namen sortiert wird nur (was bedeutet, dass die Preise basierend auf dem prod_name
in der Reihenfolge angezeigt würden ohne Rücksicht auf den Preis).