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:
SELECT column_name1, column_name2
FROM table_name
ORDER BY column_name1;
Dies sortiert die Ergebnisse nach dem Wert in column_name1 aufsteigend.
SELECT column_name1, column_name2
FROM table_name
ORDER BY column_name1 DESC;
Dies sortiert die Ergebnisse nach dem Wert in column_name1 absteigend.
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:
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.
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 |