ORDER BY

Mit SELECT kann man Daten auswählen und mit WHERE genau bestimmen, was ausgewählt werden soll. Nun kann man so eine Abfrage noch um einen weiteren Befehl erweitern, um die ausgewählten Datensätzen nach eigenen Kriterien zu ordnen. Der zusätzliche SQL Befehl der am Ende der Befehlskette stehen muss, heißt ORDER BY. Für das ORDER BY Element ergibt sich folgende Grundsql-Syntax:


SELECT spaltenname,  [..]
 FROM tabellenname
 [WHERE Bedingung]
 ORDER BY Spalte1, [Spalte2], [...] [ASC | DESC];

Wie man sehen kann, muss bei ORDER BY mindestens eine Spalte angegeben werden, nach der geordnet werden soll. Optional kann man weitere Spalten angeben, unter der Rücksicht das erst nach der ersten Spalte geordnet wird, nach dieser Ordnung kommt eine Verfeinerung der zweiten angegebenen Spalte dran usw. Für das bessere Verständnis könnte man zum Beispiel den Aufbau eines Telefonbuchs betrachten. Zu aller erst wird nach Orten geordnet. In diesen Orten wird nach Nachnamen sortiert. Gibt es mehrere gleiche Nachnamen, wird dann nach Vornamen geordnet. Geht man von diesem logischen Aufbau, einmal unabhängig von einer Tabelle aus, dann würde die ORDER BY Syntax folgendermaßen lauten:

 ORDER BY ort, nachname, vorname

Nur was bedeutet nun noch das optionale ASC bzw. DESC am Ende des ORDER BY Befehls? Erstmal sollte man wissen, für was die Abkürzungen stehen. ASC steht abgekürzt für Ascending (deutsch: Aufsteigend), während DESC für Descending (deutsch: Absteigend) steht. Man gibt also mit ASC bzw. DESC an, ob man die Daten aufsteigend oder absteigend anzeigen will. Bei ASC, das standardmäßig gesetzt wird und somit nicht explizit angegeben werden muss, wird also von A bis Z oder anders gesagt vom kleinsten Wert zum größten Wert geordnet. Bei DESC ist es genau anders herum, angefangen wird von Z geendet wird bei A, bzw. erst kommt der höchste Wert, während der Schluss der kleinste Wert darstellt.

Bei unserem theoretischen Telefonbuch-Beispiel wären die Daten aufsteigend, sprich ASC, angezeigt und muss nicht zusätzlich angegeben werden.