Logo Wissenstransfer Gerhard at CichnaDotCom

>> Wissensdatenbank / Datenmodellierung und Datenbanksysteme

Datenbankanfragen an genau eine Tabelle

Ausgabe von Abfragen sortieren (ORDER BY)

Typischerweise werden die Ergebnisse einer SQL-Abfrage in der Reihenfolge ausgegeben, in der sie aus der Datenbank gelesen werden. SQL bietet jedoch auch die Möglichkeit die Ergebnismenge einer Anfrage bereits nach festgelegten Kriterien zu sortieren. Dazu wird das Schlüsselwort ORDER BY verwendet. Zum einen sind bereits vorsortierte Ergebnisse einfacher vom Nutzer zu verarbeiten, und zum anderen kann beim Einsatz der Sortierfunktionen des DBMS gegebenenfalls auf die Implementierung einer eigenen Sortierfunktion innerhalb der Anwendung verzichtet werden.

SQL-Statement
SELECT Name FROM Country WHERE Continent = 'America'
ORDER BY Population DESC;

Für die Anfragen wird wieder die Beispieltabelle Country verwendet.

Ergebnis
Name
United States
Brazil
Mexico
Canada
Bolivia

Das Schlüsselwort ORDER BY leitet die Sortierung des Anfrageergebnisses ein: Hier wird die Liste der Ländernamen anhand der Einwohnerzahl so sortiert, dass das Land mit den meisten Einwohnern als erstes genannt wird, alle anderen Länder dann in absteigender Reihenfolge.

Als Auswahlbedingung von WHERE wird der Wert des Attributs Continent auf Gleichheit mit der Zeichenkette America geprüft. Nur Datensätze, bei denen die Auswahlbedingung erfüllt ist, werden in das Ergebnis aufgenommen.

Reihenfolgeindikatoren

Bei der Verwendung von ORDER BY wird neben der Spalte, nach der sortiert wird, auch die Sortierreihenfolge angegeben. Die folgende Tabelle zeigt die dort einsetzbaren Reihenfolgeindikatoren.

Reihenfolgeindikatoren
Reihenfolgeindikator Beschreibung
ASC Aufsteigend (engl.: ascending); A-Z bzw. 0-9
DESC Absteigend (engl.: descending); Z-A bzw. 9-0
- - (Keine Angabe) Defaultwert: Aufsteigend

Struktur von ORDER BY

Das Schlüsselwort ORDER BY kann wie folgt verwendet werden:

Variante 1
Sortierung nach einer Spalte, aufsteigend oder absteigend.

Schema:

ORDER BY spalte1 reihenfolge;

Beispiel:

ORDER BY Population DESC;

Variante 2
Sortierung nach mehreren Spalten. Die erste angegebene Spalte ist das erste Kriterium, die zweite Spalte das zweite Kriterium und so weiter. Alle Kriterien werden in der gleichen Reihenfolge, d.h. aufsteigend oder absteigend sortiert.

Schema:

ORDER BY spalte1, spalte2, ..., spalteN reihenfolge;

Beispiel:

ORDER BY Continent, Name ASC;

Variante 3
Sortierung nach mehreren Spalten. Dabei wird zu jeder Spalte explizit angegeben, ob sie aufsteigend oder absteigend sortiert wird.

Schema:

ORDER BY spalte1 reihenfolge1, spalte2 reihenfolge2, ..., spalteN reihenfolgeN;

Beispiel:

ORDER BY Continent ASC, Percentage DESC, Name ASC;