SQL ORDER BY – So ordnen Sie Abfrageergebnisse richtig
Mit SQL ORDER BY
ordnen Sie Ihre Suchergebnisse bei Datenabfragen nach individuellen Anforderungen in auf- oder absteigender Reihenfolge. Indem Sie Daten in Ihrer Zieltabelle in Zeilen und Spalten sortieren, verbessern Sie die Übersicht und Lesbarkeit. Auf diese Weise optimieren und beschleunigen Sie Datenanalysen und Abfragen aus komplexen Datensätzen.
Was ist der SQL ORDER BY
-Befehl?
Wenn Sie Daten und Ergebnisse aus einfachen oder komplexen Datensätzen in der Zieltabelle sortieren möchten, nutzen Sie in SQL den Befehl ORDER BY
. Mit dem Kommando können Sie für Ihre Zieldaten eine gewünschte auf- oder absteigende Reihenfolge in der Datenabfrage festlegen. Durch ORDER BY
erhalten Sie somit übersichtlich und leicht lesbar sortierte Abfrageergebnisse. Standardmäßig sortiert der Befehl die Abfragedaten in aufsteigender Reihenfolge, also von A nach Z oder vom kleinsten bis zum größten Wert. Bevorzugen Sie eine andere Reihenfolge, geben Sie jeweils das optionale Schlüsselwort ASC
(Ascend) für aufsteigend oder DESC
(Descend) für absteigend an.
Sie können wahlweise nur eine oder auch mehrere Spalten für die Ausgabeergebnisse definieren. Aufgrund der übersichtlichen Präsentation spielt ORDER BY
eine wichtige Rolle für geordnete, schnelle Datenabfragen. Besonders häufig kommt der Befehl in Verbindung mit SQL SELECT, SQL WHERE sowie je nach Fall mit weiteren SQL-Operatoren oder Funktionen wie SQL GROUP BY zum Einsatz.
Sie wollen SQL besser verstehen, verfügen jedoch über geringe Vorkenntnisse? Unsere SQL-Einführung mit Beispielen erleichtert Ihnen den Einstieg in die gefragte Datenbanksprache.
Die Syntax von SQL ORDER BY
erklärt
Die ORDER BY
-Syntax sieht wie folgt aus:
SELECT SpalteA, SpalteB, … oder *
FROM Tabelle
ORDER BY SpalteA, SpalteB, … (optional: ASC oder DESC)
sqlWenn Sie nach ORDER BY
nur eine Spalte angeben, erhalten Sie eine Spalte mit sortierten Ergebnissen. Geben Sie mehrere Spalten an, dann sortiert die Klausel zunächst alle Ergebnisse gemäß Spalte A. Bei identischen Einträgen in verschiedenen Zeilen ordnet die Klausel die Einträge gemäß Spalte B.
Sie können die SQL ORDER BY
-Syntax um gewünschte Operatoren oder Parameter erweitern. Mit einer WHERE
-Klausel definieren Sie zum Beispiel zusätzliche Bedingungen, um die Abfrageergebnisse einzugrenzen. Die Syntax in Kombination mit WHERE
sieht wie folgt aus:
SELECT SpalteA, SpalteB, … oder *
FROM Tabelle
WHERE SpalteA = 'Suchbedingung'
ORDER BY SpalteA, SpalteB, … (optional: ASC oder DESC)
sqlDiese Parameter können zum Einsatz kommen:
-
SELECT
: Mit SQL SELECT legen Sie fest, welche Daten Sie analysieren möchten. Geben Sie einen Asterisk*
an, wenn die Abfrage für den ganzen Datensatz gilt oder geben Sie Spaltennamen an, wenn Sie ausgewählte Spalten untersuchen möchten. -
FROM
: Legt fest, aus welcher Tabelle Sie Daten abfragen. -
WHERE
: Mit der optionalen Klausel SQL WHERE definieren Sie eine spezifische Suchbedingung, nach der Sie Ergebnisse sortieren. Hier können zusätzliche Vergleichsoperatoren wie=
oder Operatoren wie SQL LIKE oder SQL NOT zum Einsatz kommen. -
ORDER BY
: Legt fest, nach welchem Wert Sie Ergebnisse sortieren. Wenn Sie wederASC
nochDESC
hinzufügen, erfolgt die Reihenfolge automatisch alphabetisch oder numerisch absteigend.
NULL-Werte ordnet die Klausel ORDER BY
je nach Datenbank automatisch oder nach gewählter Sortierreihenfolge. In SQLite, MySQL und SQL Server behandelt der Befehl NULL-Werte als niedrigste Werte – bei aufsteigender Reihenfolge stehen sie also am Anfang. In Oracle und PostgreSQL gelten NULL-Werte als höchste Werte – bei aufsteigender Reihenfolge stehen sie also ganz am Ende.
Für diese Anwendungsmöglichkeiten eignet sich ORDER BY
Einige praktische Anwendungsfälle für SQL ORDER BY umfassen:
- Produktinformationen nach Produktbezeichnung, Kategorie oder Preis sortieren
- Transaktionen nach Betrag, Datum oder Namen sortieren
- Bestellungen nach Anzahl oder Bewertungen ordnen
- Mitarbeiterinnen und Mitarbeiter nach Gehalt, Aufträgen, Performance oder Abteilung sortieren
- Lagerbestand nach Anzahl oder Namen auflisten
- Lieferungen nach Postleitzahl oder Tracking-Nummer ordnen
- Kundenlisten nach Region oder Alter sortieren
Mit einem skalierbaren, sicheren Datenbankmanagementsystem profitieren Sie von schnellen Zugriffzeiten, maßgeschneiderter Performance und Ausfallsicherheit. Genau das bietet Ihnen SQL-Server-Hosting von IONOS – inklusive Datenschutz nach deutschen Standards.
- Bis zu 1 Gbit/s Bandbreite & unbegrenzt Traffic
- Schneller NVMe-SSD-Speicher
- Kostenlose Plesk Web Host Edition
Praktische Beispiele für SQL ORDER BY
Um die Funktionsweise von ORDER BY
zu veranschaulichen, finden Sie im Folgenden drei praktische Anwendungsbeispiele.
Produkte nach Preis sortieren
Um in einer Tabelle „Produkte“ die Produkte der Kategorie „Beauty“ nach Preis aufsteigend zu sortieren, bestimmen Sie mit FROM, welche Kategorie sie sortieren möchten. Mit ORDER BY
und ASC
bestimmen Sie, dass Sie nach „Preis“ aufsteigend sortieren möchten. Gehen Sie wie folgt vor:
SELECT *
FROM Produkte
WHERE Kategorie = 'Beauty'
ORDER BY Preis ASC;
sqlFiltern von Kundengruppen
In einer Tabelle „Kunden“ möchten Sie mit der Sortierbedingung „Land“ alle Kundinnen und Kunden aus Deutschland alphabetisch nach Namen sortieren. Um aufsteigend von A bis Z zu ordnen, müssen Sie keinen Zusatz ASC
hinzufügen. Möchten Sie von Z bis A sortieren, fügen Sie DESC
zum SQL ORDER BY
-Befehl hinzu:
SELECT *
FROM Kunden
WHERE Land = 'Deutschland'
ORDER BY Name DESC;
sqlSortieren mit mehreren Bedingungen
Sie möchten in einer Tabelle „Produkte“ Einträge aus der Kategorie „Elektronik“ nach Bestellmenge alphabetisch aufsteigend sortieren. Bei identischer Bestellmenge wollen Sie Bestellungen nach Region sortieren. Die Syntax sieht wie folgt aus:
SELECT *
FROM Produkte
WHERE Kategorie = 'Elektronik'
ORDER BY Bestellmenge ASC, Region DESC;
sqlAlternativen zu SQL ORDER BY
Eine Alternative mit derselben Funktion wie ORDER BY
gibt es im Grunde nicht. Zu den SQL-Befehlen, die jedoch häufig in Kombination mit SQL ORDER BY
zum Einsatz kommen, zählt SQL GROUP BY. Während Sie mit GROUP BY
Datensätze aus Spalten beispielsweise nach Kategorie gruppieren, können Sie diese mit ORDER BY
zusätzlich ordnen.
Ein Beispiel: Sie möchten den Bestellwert von Kundinnen und Kunden nach Land gruppieren und anschließend mit der Aggregatfunktion SQL AVG nach durchschnittlicher Bestellmenge aufsteigend sortieren. Die Syntax sieht wie folgt aus:
SELECT Land, AVG(Bestellmenge)
FROM Kunden
WHERE Kategorie = 'Elektronik'
GROUP BY Land
ORDER BY AVG(Bestellmenge) ASC;
sqlMit der Klausel SQL HAVING können Sie die sortierten Datensätze zusätzlich nach definierten Suchkriterien und Bedingungen filtern. Mit LIMIT
können Sie zudem die Ergebnismenge auf eine gewünschte Anzahl beschränken.