SQL: Datensätze sortieren mit ORDER BY

ORDER BY wird in einem SELECT-Befehl genutzt, um die Datensätze nach einen oder mehreren bestimmten Kriterien zu sortieren. Dabei kann aufsteigend oder absteigend auf Grundlage eines Zahlenwerts oder Textwerts sortiert werden:

  •            ASC: Die Datensätze werden aufsteigend sortiert (Ascending)
  •            DESC: Die Datensätze werden absteigend sortiert (Descending)

Beachte: Wenn kein Sortierungsparameter mitgegeben wird, wird standardmäßig aufsteigend sortiert.

Die allgemeine ORDER BY-Syntax lautet:

SELECT Column_name FROM Table ORDER BY Column_name [ASC, DESC];

Bei einer Sortierung nach mehreren Spalten lautet der ORDER BY-Befehl:

ORDER BY Column_name1 [ASC, DESC], Column_name2 [ASC, DESC];

Hierbei wird zunächst nach der zuerst genannten Spalte sortiert, dann nach der Zweiten und so weiter.

Beispiele:

Aufsteigende Sortierung nach einer Spalte:

SELECT last_name FROM actor ORDER BY last_name;

Absteigende Sortierung nach einer Spalte:

SELECT last_name FROM actor ORDER BY last_name DESC;

Aufsteigende Sortierung nach mehreren Spalten:

SELECT first_name, last_name FROM actor ORDER BY last_name, first_name;

Hierbei wird zunächst nach der zuerst genannten Spalte „last_name“ sortiert, dann nach der zweiten Spalte „first_name“.

Sortierung nach mehreren Spalten:

Zunächst soll nach „last_name“ absteigend sortiert werden und anschließend aufsteigen nach „first_name“

SELECT first_name, last_name FROM actor ORDER BY last_name DESC, first_name;

ORDER BY in einer WHERE-Bedingung:

Die WHERE-Bedingung steht immer vor dem ORDER BY-Befehl:

SELECT Column_name FROM Table WHERE condition ORDER BY Column_name [ASC, DESC];

Lassen wir uns z.B. alle Schauspieler mit dem Nachnamen „Willis“ ausgeben und dabei die Vornamen aufsteigend sortieren:

SELECT first_name, last_name FROM actor WHERE last_name = ‚WILLIS‘ ORDER BY first_name;

(Visited 32.685 times, 4 visits today)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert