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