Problem:
Sie müssen Datensätze aus einer bestimmten Tabelle nach zwei Spalten sortiert anzeigen.
Beispiel:
Unsere Datenbank hat eine Tabelle namens employee
mit den folgenden Spalten:id
, first_name
, last_name
und salary
.
id | Vorname | Nachname | Gehalt |
---|---|---|---|
1 | Lisa | Ulmann | 3000 |
2 | Ada | Müller | 2400 |
3 | Thomas | Grün | 2400 |
4 | Michael | Müller | 3000 |
5 | Maria | Grün | 2400 |
Lassen Sie uns alle Informationen für jeden Mitarbeiter anzeigen, aber sortieren Sie die Datensätze zuerst nach Gehalt in absteigender Reihenfolge und dann nach Nachnamen in aufsteigender Reihenfolge.
Lösung:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
Diese Abfrage gibt nach zwei Spalten sortierte Datensätze zurück:Gehalt und Nachname .
id | Vorname | Nachname | Gehalt |
---|---|---|---|
4 | Michael | M uller | 3000 |
1 | Lisa | U lman | 3000 |
3 | Thomas | G wieder | 2400 |
5 | Maria | G wieder | 2400 |
2 | Ada | M uller | 2400 |
Diskussion:
Wenn Sie Datensätze aus einer Tabelle auswählen möchten, diese aber nach zwei Spalten sortiert sehen möchten, können Sie dies mit ORDER BY
tun . Diese Klausel steht am Ende Ihrer SQL-Abfrage.
Nach dem ORDER BY
Stichwort, fügen Sie den Namen der Spalte hinzu, nach der Sie Datensätze zuerst sortieren möchten (in unserem Beispiel Gehalt). Fügen Sie dann nach einem Komma die zweite Spalte hinzu (in unserem Beispiel last_name
). Sie können die Sortierreihenfolge (aufsteigend oder absteigend) für jede Spalte separat ändern. Wenn Sie eine aufsteigende Reihenfolge (von niedrig nach hoch) verwenden möchten, können Sie den ASC
verwenden Stichwort; Dieses Schlüsselwort ist jedoch optional, da dies die Standardreihenfolge ist, wenn keines angegeben ist. Wenn Sie eine absteigende Reihenfolge verwenden möchten, geben Sie DESC
ein Schlüsselwort nach der entsprechenden Spalte (im Beispiel haben wir für salary
eine absteigende Reihenfolge verwendet Spalte).
In unserem Beispiel haben wir das Ergebnis zuerst nach Gehalt in absteigender Reihenfolge (höhere Gehälter zu niedrigeren) und dann innerhalb dieser bereits sortierten Datensätze nach Nachnamen in aufsteigender Reihenfolge sortiert.