====== Ergebnisse sortieren - ORDER BY ======
Natürlich ist es in SQL auch möglich, Ergebnisse nach gewissen Kriterien zu sortieren. Hierfür stellt SQL die ORDER BY Klausel zur Verfügung. Sie wird, genau wie die WHERE-Klausel, einfach immer zum Schluss hinzugeschrieben.
===== Syntax =====
SELECT ...
FROM ...
WHERE ...
ORDER BY {Spalte | Ausdruck | Alias [ASC | DESC]} [, ...]
Wieder ganz viele Zeichen und Klammern, aber keine Sorge, wie beim SELECT brauchen wir fast keine davon. In dieser Schreibweise werden nur alle Möglichkeiten der Kombination der verschiedenen Abfragemethoden dargestellt.
Was allerdings neu ist ist ASC bzw. DESC.
* ASC
* ASC ist immer der Standard, selbst wenn kein ORDER BY dazugeschrieben wird. Es sortiert die Ergebnisse aufsteigend (1, 2, 3, 4, ... oder aber a, b, c, ...)
* DESC
* DESC muss manuell angegeben werden, es sortiert die Ergebnisse absteigend (4, 3, 2, 1 oder c, b, a)
Im ORDER BY kann aber auch nach Ausdrücken und Spalten sortiert werden, die NICHT im SELECT vorkommen.
===== Beispiele =====
Wie immer arbeiten wir auch hier wieder mit unserer kleinen Mitarbeitertabelle ;-)
{{:dbs:sql:mitarbeitertabelle_violett.png?direct&|}}
Beispiel 1: Sortiere absteigend nach Namen
SELECT *
FROM Mitarbeiter
ORDER BY Name DESC
Beispiel 2: Sortiere absteigend nach Abteilungsnummer und Name
SELECT *
FROM Mitarbeiter
ORDER BY Abteilungsnummer, Name DESC
WICHTIG: Die Reihenfolge der Parameter ist nicht egal. Zuerst wird nach dem 1. Parameter (Abteilungsnummer) sortiert. Sind (wie in unserem Fall) dann mehrere Elemente mit der gleichen Nummer vorhanden, wird mit dem 2. Parameter kontrolliert.