Order By

Mit dem Befehl ORDER BY in SQL kann man die Reihenfolge der Zeilen einer Abfrage basierend auf den Werten einer oder mehrerer Spalten sortieren. Standardmäßig werden die Ergebnisse aufsteigend sortiert (ASC), aber man kann auch absteigend sortieren (DESC).

Die Sortierung der verschiedenen Datentypen geschieht nach folgenden Regeln:

  • Numerische Werte werden entsprechend ihrer Größe sortiert.

  • Zeichenketten werden alphabetisch sortiert.

  • Datumsangaben werden nach dem Kalender sortiert.

  • Nullwerte werden entweder am Ende ausgegeben (ASC-Sortierung) oder zu Beginn (DESC-Sortierung).

Hier ein paar Details zum Befehl ORDER BY in SQL:

Sortieren nach einer Spalte:

MYSQL/SQLite
SELECT column_name1, column_name2
FROM table_name
ORDER BY column_name1;

Dies sortiert die Ergebnisse nach dem Wert in column_name1 aufsteigend.

MYSQL/SQLite
SELECT column_name1, column_name2
FROM table_name
ORDER BY column_name1 DESC;

Dies sortiert die Ergebnisse nach dem Wert in column_name1 absteigend.

MYSQL/SQLite
SELECT mitarbeiter_name FROM mitarbeiter ORDER BY mitarbeiter_name;

Dies sortiert die Mitarbeiternamen alphabetisch aufsteigend.

Mitarbeiter_Name

Fransen

Fromme

Hansen

Kaiser

Knudsen

Koch

Laufer

Maier

Paulsen

Poller

Reimann

Warner

Sortieren nach mehreren Spalten:

MYSQL/SQLite
SELECT column_name1, column_name2, column_name3
FROM table_name
ORDER BY column_name1, column_name2 DESC;

Dies sortiert die Ergebnisse zuerst nach column_name1 aufsteigend und dann nach column_name2 absteigend.

MYSQL/SQLite
SELECT * FROM mitarbeiter
ORDER BY Mitarbeiter_Einstellungsdatum ASC, Mitarbeiter_Jahresbonus DESC;

Dies sortiert die Mitarbeiternamen zuerst nach „Mitarbeiter_Einstellungsdatum“ aufsteigend und dann nach „Mitarbeiter_Jahresbonus“ absteigend sortiert.

Mitarbeiter_ID

Mitarbeiter_Name

Mitarbeiter_EMail

Mitarbeiter_Einstellungsdatum

Mitarbeiter_Jahresbonus

Abteilungs_ID

2

Kaiser

Kaiser@firma.de

2005-01-01

NULL

1

12

Reimann

Reimann@firma.de

2009-03-01

1450

NULL

9

Laufer

Laufer@frima.de

2010-07-01

1200

6

1

Hansen

Hansen@firma.de

2010-10-01

1800

2

7

Paulsen

Paulsen@firma.de

2011-12-01

600

4

4

Knudsen

Knudsen@firma.de

2012-11-01

NULL

3

5

Warner

Warner@firma.de

2014-02-01

900

5

3

Maier

Maier@firma.de

2014-04-01

750

6

8

Fransen

Fransen@firma.de

2015-04-01

450

4

10

Fromme

Fromme@firma.de

2015-10-01

NULL

2

6

Koch

Koch@firma.de

2017-06-01

NULL

1

11

Poller

Poller@firma.de

2018-02-01

NULL

3