Seitenleiste

Community

SQL

Grundlagen

Datenbanksysteme

Client/Server

Eingebettet

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 ;-)


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.