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.