# 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](https://www.ionos.at/digitalguide/server/konfiguration/sql-select/), [SQL WHERE](https://www.ionos.at/digitalguide/server/konfiguration/sql-where/) sowie je nach Fall mit weiteren [SQL-Operatoren](https://www.ionos.at/digitalguide/server/konfiguration/sql-operatoren/) oder Funktionen wie [SQL GROUP BY](https://www.ionos.at/digitalguide/server/konfiguration/sql-group-by/) zum Einsatz.

Tipp Sie wollen [SQL](https://www.ionos.at/digitalguide/server/knowhow/was-ist-sql/) besser verstehen, verfügen jedoch über geringe Vorkenntnisse? Unsere [SQL-Einführung mit Beispielen](https://www.ionos.at/digitalguide/server/konfiguration/sql-einfuehrung-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:

```sql
SELECT  SpalteA, SpalteB, …  oder *
FROM  Tabelle
ORDER BY  SpalteA, SpalteB, …  (optional: ASC oder DESC)
```

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:

```sql
SELECT  SpalteA, SpalteB, …  oder *
FROM  Tabelle
WHERE  SpalteA  =  'Suchbedingung'
ORDER BY  SpalteA, SpalteB, …  (optional: ASC oder DESC)
```

Diese Parameter können zum Einsatz kommen:

- `SELECT`: Mit [SQL SELECT](https://www.ionos.at/digitalguide/server/konfiguration/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](https://www.ionos.at/digitalguide/server/konfiguration/sql-where/) definieren Sie eine spezifische Suchbedingung, nach der Sie Ergebnisse sortieren. Hier können zusätzliche Vergleichsoperatoren wie `=` oder Operatoren wie [SQL LIKE](https://www.ionos.at/digitalguide/server/konfiguration/sql-like/) oder [SQL NOT](https://www.ionos.at/digitalguide/server/konfiguration/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

## 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:

```sql
SELECT  *
FROM  Produkte
WHERE  Kategorie  = 'Beauty'
ORDER BY  Preis  ASC;
```

### 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:

```sql
SELECT  *
FROM  Kunden
WHERE  Land = 'Deutschland'
ORDER BY  Name  DESC;
```

### 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:

```sql
SELECT  *
FROM  Produkte
WHERE  Kategorie  =  'Elektronik'
ORDER BY  Bestellmenge ASC,  Region  DESC;
```

## Alternativen zu SQL `ORDER BY`

Eine Alternative mit derselben Funktion wie `ORDER BY` gibt es im Grunde nicht. Zu den [SQL-Befehlen](https://www.ionos.at/digitalguide/server/konfiguration/sql-befehle/), die jedoch häufig in Kombination mit SQL `ORDER BY` zum Einsatz kommen, zählt [SQL GROUP BY](https://www.ionos.at/digitalguide/server/konfiguration/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](https://www.ionos.at/digitalguide/server/konfiguration/sql-avg/) nach durchschnittlicher Bestellmenge aufsteigend sortieren. Die Syntax sieht wie folgt aus:

```sql
SELECT  Land, AVG(Bestellmenge)
FROM  Kunden
WHERE  Kategorie = 'Elektronik'
GROUP BY  Land
ORDER BY  AVG(Bestellmenge) ASC;
```

Mit der Klausel [SQL HAVING](https://www.ionos.at/digitalguide/server/konfiguration/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.


This is a markdown version of: [https://www.ionos.at/digitalguide/server/konfiguration/sql-order-by/](https://www.ionos.at/digitalguide/server/konfiguration/sql-order-by/) for AI/LLM consumption.