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