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.

Tipp

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)
sql
Hinweis

Wenn 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)
sql

Diese 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 weder ASC noch DESC hinzufügen, erfolgt die Reihenfolge automatisch alphabetisch oder numerisch absteigend.
Hinweis

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
Tipp

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.

vServer (VPS) von IONOS

Günstige und starke VPS für Webserver, Mailserver und eigene Anwendungen mit persönlichem Berater und 24/7 Support!

100 % SSD-Speicher
Bereit in 55 Sek.
SSL Zertifikat

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;
sql

Filtern 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;
sql

Sortieren 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;
sql

Alternativen 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;
sql

Mit 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.