Problem:
Sie möchten das Ergebnis einer SQL-Abfrage aufsteigend oder absteigend sortieren.
Beispiel:
Unsere Datenbank hat eine Tabelle namens salary_information
mit Daten in den Spalten id
, first_name
, last_name
und monthly_earnings
. Wir möchten die Mitarbeiter nach ihrem monthly_earnings
sortieren in absteigender Reihenfolge.
id | Vorname | Nachname | monatliches_Einkommen |
---|---|---|---|
1 | Calvin | Rios | 3500 |
2 | Alan | Paterson | 4000 |
3 | Kurt | Evans | 2300 |
4 | Alex | Watkins | 5500 |
Lösung:
Wir verwenden einen ORDER BY
Klausel. Hier ist die Abfrage:
Wir verwenden die Funktion CURRENT_DATE
um das aktuelle Datum zu erhalten:
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY monthly_earnings DESC
Hier ist das Ergebnis der Abfrage:
Vorname | Nachname | monatliches_Einkommen |
---|---|---|
Alex | Watkins | 5500 |
Alan | Paterson | 4000 |
Calvin | Rios | 3500 |
Kurt | Evans | 2300 |
Jetzt können wir sehen, dass Alex Watkins an erster Stelle auf der Liste steht, was bedeutet, dass er das meiste Geld verdient.
Diskussion:
Verwenden Sie einen ORDER BY
-Klausel, wenn Sie das Dataset in aufsteigender oder absteigender Reihenfolge sortieren möchten. Die Syntax für ein ORDER BY
Klausel lautet wie folgt:
SELECT col1, col2, … FROM table ORDER BY col1, col2, … ASC|DESC;
Oben ASC|DESC
bedeutet, dass Sie entweder das Schlüsselwort ASC
wählen sollten (aufsteigend) oder DESC
(absteigend), um den Datensatz nach Ihren Wünschen anzuordnen.
Neben der Sortierung nach numerischen Spalten können Sie auch nach Textspalten sortieren. Ein ORDER BY
-Klausel sortiert Textspalten in alphabetischer Reihenfolge.
Anstelle des Spaltennamens können Sie auch die Position der Spalte von links gezählt verwenden. Schreiben Sie also in unserem Beispiel statt:
ORDER BY monthly_earnings DESC
Sie können auch schreiben:
ORDER BY 3 DESC
Wenn Sie die Tabelle aus dem Beispiel nach first_name
sortieren möchten Spalte in alphabetischer (aufsteigender) Reihenfolge, können Sie die folgende Abfrage verwenden:
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY first_name ASC
Es ist auch erwähnenswert, dass Sie nach mehreren Spalten sortieren können. Dies ist hilfreich, wenn sich einige Werte in einer bestimmten Spalte wiederholen und Sie eine zusätzliche Sortierung benötigen. Trennen Sie in diesem Fall die Spaltennamen in der ORDER BY-Klausel durch Kommas.
Sie können sogar nach einer Spalte aufsteigend und nach einer anderen absteigend sortieren. Das Folgende veranschaulicht die Syntax dieser Kombination:
ORDER BY Col1 ASC, Col2 DESC;
Wenn Sie den ASC
weglassen oder DESC
Schlüsselwort wird standardmäßig eine aufsteigende Sortierung durchgeführt.