Mit SQL ORDER BY sortierst du deine Such­ergeb­nis­se bei Da­ten­ab­fra­gen ganz nach deinen Wünschen in auf- oder ab­stei­gen­der Rei­hen­fol­ge. Indem du Daten in deiner Ziel­ta­bel­le ordnest, ver­bes­serst du die Übersicht und Les­bar­keit erheblich. So op­ti­mierst und be­schleu­nigst du Analysen und Abfragen aus komplexen Da­ten­sät­zen.

Was ist der SQL ORDER BY-Befehl?

Wenn du Daten und Er­geb­nis­se aus einfachen oder um­fang­rei­chen Da­ten­sät­zen in der Ziel­ta­bel­le sortieren möchtest, nutzt du in SQL den Befehl ORDER BY. Mit diesem Kommando legst du für deine Zieldaten eine auf- oder ab­stei­gen­de Rei­hen­fol­ge in der Da­ten­ab­fra­ge fest. Durch ORDER BY erhältst du über­sicht­li­che und gut struk­tu­rier­te Ab­fra­ge­er­geb­nis­se. Stan­dard­mä­ßig sortiert der Befehl die Daten auf­stei­gend, also von A nach Z oder vom kleinsten bis zum größten Wert. Be­vor­zugst du eine andere Reihung, nutzt du die op­tio­na­len Schlüs­sel­wör­ter ASC (Ascend) für auf­stei­gend oder DESC (Descend) für ab­stei­gend.

Du kannst wahlweise nur eine oder auch mehrere Spalten für die Ausgabe de­fi­nie­ren. Wegen der klaren Prä­sen­ta­ti­on ist ORDER BY es­sen­zi­ell für geordnete, schnelle Da­ten­ab­fra­gen. Besonders oft wird der Befehl zusammen mit SQL SELECT, SQL WHERE sowie weiteren SQL-Ope­ra­to­ren oder Funk­tio­nen wie SQL GROUP BY genutzt.

Tipp

Du willst SQL besser verstehen, hast aber noch wenig Erfahrung? Unsere SQL-Ein­füh­rung mit Bei­spie­len hilft dir beim Einstieg in die Welt der Da­ten­ban­ken.

Die Syntax von SQL ORDER BY erklärt

Die ORDER BY-Syntax sieht so aus:

SELECT  SpalteA, SpalteB, …  oder *
FROM  Tabelle
ORDER BY  SpalteA, SpalteB, …  (optional: ASC oder DESC)
sql
Hinweis

Wenn du nach ORDER BY nur eine Spalte nennst, erhältst du eine Spalte mit sor­tier­ten Er­geb­nis­sen. Gibst du mehrere Spalten an, sortiert die Klausel zuerst nach Spalte A. Bei iden­ti­schen Einträgen in ver­schie­de­nen Zeilen erfolgt die weitere Sor­tie­rung nach Spalte B.

Du kannst die SQL ORDER BY-Syntax um ver­schie­de­ne Ope­ra­to­ren erweitern. Mit einer WHERE-Klausel de­fi­nierst du bei­spiels­wei­se zu­sätz­li­che Be­din­gun­gen, um die Ab­fra­ge­er­geb­nis­se präzise ein­zu­gren­zen. Die Syntax in Kom­bi­na­ti­on mit WHERE lautet:

SELECT  SpalteA, SpalteB, …  oder *
FROM  Tabelle
WHERE  SpalteA  =  'Suchbedingung'
ORDER BY  SpalteA, SpalteB, …  (optional: ASC oder DESC)
sql

Diese Parameter kommen zum Einsatz:

  • SELECT: Mit SQL SELECT legst du fest, welche Daten du ana­ly­sie­ren willst. Nutze ein Sternchen * für den gesamten Datensatz oder nenne gezielte Spal­ten­na­men.
  • FROM: Bestimmt, aus welcher Tabelle die Daten abgefragt werden.
  • WHERE: Mit der op­tio­na­len Klausel SQL WHERE setzt du eine spe­zi­fi­sche Such­be­din­gung. Hier können auch Ver­gleichs­ope­ra­to­ren wie = oder Ope­ra­to­ren wie SQL LIKE oder SQL NOT genutzt werden.
  • ORDER BY: Legt fest, nach welchem Wert sortiert wird. Ohne ASC oder DESC erfolgt die Sor­tie­rung au­to­ma­tisch al­pha­be­tisch oder numerisch auf­stei­gend.
Hinweis

NULL-Werte ordnet ORDER BY je nach Da­ten­bank­sys­tem un­ter­schied­lich ein. In SQLite, MySQL und SQL Server gelten NULL-Werte als nied­rigs­te Werte – bei auf­stei­gen­der Sor­tie­rung stehen sie also am Anfang. In Oracle und Post­greS­QL werden sie als höchste Werte behandelt und er­schei­nen am Ende.

Typische An­wen­dungs­mög­lich­kei­ten für ORDER BY

Prak­ti­sche Beispiele für SQL ORDER BY sind unter anderem:

  • Sortieren von Produkten nach Name, Kategorie oder Preis
  • Auflisten von Trans­ak­tio­nen nach Betrag, Datum oder Name
  • Ordnen von Be­stel­lun­gen nach Menge oder Kun­den­be­wer­tung
  • Sortieren von Team­mit­glie­dern nach Gehalt, Per­for­mance oder Abteilung
  • Anzeigen des La­ger­be­stands nach Anzahl oder Be­zeich­nung
  • Grup­pie­ren von Lie­fe­run­gen nach PLZ oder Tracking-ID
  • Sortieren von Kund­schafts­lis­ten nach Region oder Alter

Prak­ti­sche Beispiele für SQL ORDER BY

Damit du siehst, wie ORDER BY in der Praxis funk­tio­niert, haben wir hier drei Beispiele für dich vor­be­rei­tet.

Produkte nach Preis ordnen

Um in der Tabelle „Produkte“ alle Artikel der Kategorie „Beauty“ nach Preis auf­stei­gend zu sortieren, nutzt du FROM für die Auswahl. Mit ORDER BY und ASC legst du die Sor­tie­rung nach „Preis“ fest:

SELECT  *
FROM  Produkte
WHERE  Kategorie  = 'Beauty'
ORDER BY  Preis  ASC;
sql

Kun­den­grup­pen gezielt filtern

In der Tabelle „Kunden“ möchtest du alle Einträge aus Deutsch­land al­pha­be­tisch nach Namen ordnen. Für die Stan­dard­sor­tie­rung von A bis Z ist kein extra ASC nötig. Willst du hingegen von Z bis A sortieren, ergänze den SQL ORDER BY-Befehl um DESC:

SELECT  *
FROM  Kunden
WHERE  Land = 'Deutschland'
ORDER BY  Name  DESC;
sql

Sortieren mit mehreren Kriterien

Du möchtest Artikel der Kategorie „Elek­tro­nik“ zuerst nach Be­stell­men­ge (auf­stei­gend) und bei iden­ti­scher Menge zu­sätz­lich nach der Region sortieren. Die Syntax dafür sieht so aus:

SELECT  *
FROM  Produkte
WHERE  Kategorie  =  'Elektronik'
ORDER BY  Bestellmenge ASC,  Region  DESC;
sql

Al­ter­na­ti­ven zu SQL ORDER BY

Eine echte Al­ter­na­ti­ve mit iden­ti­schem Funk­ti­ons­um­fang gibt es kaum. Ein oft genutzter Partner für ORDER BY ist jedoch SQL GROUP BY. Während du mit GROUP BY Da­ten­sät­ze etwa nach Ka­te­go­rien grup­pierst, kannst du diese Gruppen mit ORDER BY in die ge­wünsch­te Rei­hen­fol­ge bringen.

Ein Beispiel: Du möchtest den Be­stell­wert nach Land grup­pie­ren und mit der Funktion SQL AVG nach der durch­schnitt­li­chen Menge auf­stei­gend sortieren:

SELECT  Land, AVG(Bestellmenge)
FROM  Kunden
WHERE  Kategorie = 'Elektronik'
GROUP BY  Land
ORDER BY  AVG(Bestellmenge) ASC;
sql

Mit der Klausel SQL HAVING filterst du die sor­tier­ten Daten zu­sätz­lich nach Such­kri­te­ri­en. Mit LIMIT lässt sich die Anzahl der an­ge­zeig­ten Er­geb­nis­se zudem begrenzen.

Zum Hauptmenü