Wie man SQL ORDER BY mit mehreren Spalten verwendet
Min-jun Kim
Dev Intern · Leapcell

Key Takeaways
- Die
ORDER BY
-Klausel kann Ergebnisse nach mehreren Spalten sortieren. - Die Reihenfolge und Richtung der Spalten beeinflussen die endgültige Ausgabe.
- Die Verwendung mehrerer Spalten ermöglicht eine präzisere Datenorganisation.
Bei der Arbeit mit Datenbanken ist das Sortieren von Daten in einer sinnvollen Reihenfolge oft für Analysen, Berichte oder die Benutzerpräsentation notwendig. SQL bietet die ORDER BY
-Klausel, um Abfrageergebnisse zu sortieren. Während das Sortieren nach einer einzelnen Spalte unkompliziert ist, gibt es viele Fälle, in denen das Sortieren nach mehreren Spalten erforderlich ist. Dieser Artikel erklärt, wie man ORDER BY
mit mehreren Spalten in SQL verwendet, warum es nützlich ist, und bietet Beispiele zur Veranschaulichung der Verwendung.
Warum nach mehreren Spalten sortieren?
Das Sortieren nach mehreren Spalten kann Ihnen helfen, besser organisierte und leicht interpretierbare Ergebnisse zu erstellen. Wenn Sie beispielsweise eine Liste von Mitarbeitern haben und diese zuerst nach Abteilung und dann nach Gehalt ordnen möchten, stellt die Verwendung mehrerer Spalten in der ORDER BY
-Klausel sicher, dass Ihre Daten genau so gruppiert und sortiert werden, wie Sie es benötigen.
Syntax von ORDER BY mit mehreren Spalten
Die grundlegende Syntax zum Sortieren nach mehreren Spalten in SQL ist:
SELECT Spalte1, Spalte2, ... FROM Tabellenname ORDER BY Spalte1 [ASC|DESC], Spalte2 [ASC|DESC], ...;
Spalte1
,Spalte2
usw. sind die Spalten, nach denen Sie sortieren möchten.ASC
bedeutet aufsteigende Reihenfolge (Standard) undDESC
bedeutet absteigende Reihenfolge.- Bei Bedarf können Sie aufsteigende und absteigende Reihenfolgen mischen.
Beispiel: Sortieren nach zwei Spalten
Angenommen, Sie haben eine Tabelle namens Mitarbeiter
mit den folgenden Spalten: Abteilung
, Nachname
und Gehalt
. Sie möchten die Mitarbeiter nach Abteilung (alphabetisch) und innerhalb jeder Abteilung nach Gehalt (höchste bis niedrigste) sortieren.
SELECT Abteilung, Nachname, Gehalt FROM Mitarbeiter ORDER BY Abteilung ASC, Gehalt DESC;
In diesem Beispiel:
- Die Ergebnisse werden zuerst nach der Spalte
Abteilung
in aufsteigender Reihenfolge sortiert. - Innerhalb jeder Abteilung werden die Zeilen zusätzlich nach der Spalte
Gehalt
in absteigender Reihenfolge sortiert.
Beispiel: Sortieren nach mehr als zwei Spalten
Sie können der ORDER BY
-Klausel beliebig viele Spalten hinzufügen. Hier ist ein Beispiel mit drei Spalten:
SELECT Abteilung, Nachname, Vorname, Gehalt FROM Mitarbeiter ORDER BY Abteilung, Nachname, Vorname;
Diese Abfrage wird:
- Zuerst alle Mitarbeiter nach
Abteilung
sortieren. - Für Mitarbeiter innerhalb derselben Abteilung diese nach
Nachname
sortieren. - Wenn es Mitarbeiter mit demselben Nachnamen in einer Abteilung gibt, werden diese nach
Vorname
sortiert.
Praktische Tipps
- Die Reihenfolge der Spalten in der
ORDER BY
-Klausel ist wichtig. SQL sortiert zuerst nach der ersten Spalte und dann nach der zweiten, nur wenn es Gleichstände gibt, und so weiter. - Wenn Sie
ASC
oderDESC
nicht angeben, verwendet SQL standardmäßig die aufsteigende Reihenfolge. - Sie können Spaltennummern in der
ORDER BY
-Klausel verwenden (z. B.ORDER BY 2, 3 DESC
), aber die Verwendung von Spaltennamen wird aus Gründen der Lesbarkeit empfohlen.
Fazit
Das Sortieren nach mehreren Spalten in SQL mithilfe der ORDER BY
-Klausel ist eine leistungsstarke Möglichkeit, die Reihenfolge Ihrer Abfrageergebnisse zu steuern. Durch die Angabe einer oder mehrerer Spalten und der Richtung für jede Spalte können Sie Ihre Datenpräsentation so anpassen, dass sie fast allen Anforderungen entspricht. Die Beherrschung dieser Technik ist für eine effektive Datenabfrage und Berichterstellung in SQL unerlässlich.
FAQs
Ja, Sie können ASC oder DESC für jede Spalte einzeln angeben.
SQL sortiert nach der nächsten in der ORDER BY-Klausel angegebenen Spalte.
Nein, aber es wird aus Gründen der Lesbarkeit empfohlen; es können auch Spaltennummern verwendet werden.
Wir sind Leapcell, Ihre erste Wahl für das Hosting von Backend-Projekten.
Leapcell ist die Serverless-Plattform der nächsten Generation für Webhosting, asynchrone Aufgaben und Redis:
Multi-Sprachen-Unterstützung
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- Zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 US-Dollar unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollautomatische CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für verwertbare Erkenntnisse.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung zur einfachen Bewältigung hoher Parallelität.
- Kein operativer Aufwand – konzentrieren Sie sich einfach auf den Aufbau.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ