ORDER BY
Grundlagen
Wozu dient ORDER BY?
Mit ORDER BY sortierst du das Ergebnis nach einer oder mehreren Spalten. Ohne ORDER BY ist die Reihenfolge der Zeilen nicht garantiert – das Datenbanksystem darf sie beliebig zurückgeben.
Syntax
SELECT spalten FROM tabelle ORDER BY spalte1 [ASC|DESC];
ASC und DESC
ASC= aufsteigend (A→Z, 0→9). Das ist die Standardeinstellung, wenn du nichts angibst.DESC= absteigend (Z→A, 9→0).
Kunden nach Umsatz, höchster zuerst:
SELECT Name, Umsatz FROM Kunden ORDER BY Umsatz DESC;
| Name | Umsatz |
|---|---|
| Müller GmbH | 12500 |
| Schmidt AG | 8200 |
| Dupont SARL | 4300 |
Mehrere Spalten
Du kannst nach mehreren Spalten sortieren. Zuerst wird nach der ersten Spalte sortiert; bei gleichen Werten entscheidet die zweite Spalte:
SELECT Name, Land, Umsatz FROM Kunden ORDER BY Land ASC, Umsatz DESC;
Hier werden die Kunden zunächst nach Land alphabetisch sortiert und innerhalb desselben Landes nach Umsatz absteigend.
Kombination mit WHERE
ORDER BY steht immer nach WHERE:
SELECT Name, Umsatz FROM Kunden WHERE Land = 'DE' ORDER BY Umsatz DESC;
Stolperfalle
ASC/DESC gilt jeweils nur für die direkt davorstehende Spalte. ORDER BY a, b DESC sortiert a aufsteigend und nur b absteigend. Achtung bei Texten: Sortierung und Groß-/Kleinschreibung hängen von der Collation der Datenbank ab.