Beispiele für ORDER BY
Sortieren der Ergebnismenge in aufsteigender Reihenfolge, Sortierung nach den Spalten RDB$CHARACTER_SET_ID und RDB$COLLATION_ID der Tabelle RDB$COLLATIONS:
SELECT
RDB$CHARACTER_SET_ID AS CHARSET_ID,
RDB$COLLATION_ID AS COLL_ID,
RDB$COLLATION_NAME AS NAME
FROM RDB$COLLATIONS
ORDER BY RDB$CHARACTER_SET_ID, RDB$COLLATION_ID;
Das gleiche, aber nach den Spaltenaliasen sortiert:
SELECT
RDB$CHARACTER_SET_ID AS CHARSET_ID,
RDB$COLLATION_ID AS COLL_ID,
RDB$COLLATION_NAME AS NAME
FROM RDB$COLLATIONS
ORDER BY CHARSET_ID, COLL_ID;
Sortieren der Ausgabedaten nach den Spaltenpositionsnummern:
SELECT
RDB$CHARACTER_SET_ID AS CHARSET_ID,
RDB$COLLATION_ID AS COLL_ID,
RDB$COLLATION_NAME AS NAME
FROM RDB$COLLATIONS
ORDER BY 1, 2;
Sortieren einer SELECT *-Abfrage nach Positionsnummern — möglich, aber böse und nicht empfohlen:
SELECT *
FROM RDB$COLLATIONS
ORDER BY 3, 2;
Sortieren nach der zweiten Spalte in der BOOKS-Tabelle oder — wenn BOOKS nur eine Spalte hat — der FILMS.DIRECTOR-Spalte:
SELECT
BOOKS.*,
FILMS.DIRECTOR
FROM BOOKS, FILMS
ORDER BY 2;
Sortieren in absteigender Reihenfolge nach den Werten der Spalte PROCESS_TIME, wobei NULLs am Anfang der Menge stehen:
SELECT *
FROM MSG
ORDER BY PROCESS_TIME DESC NULLS FIRST;
Sortieren der Menge, die durch eine UNION von zwei Abfragen erhalten wurde.Die Ergebnisse werden in absteigender Reihenfolge nach den Werten in der zweiten Spalte sortiert, mit NULLs am Ende der Menge;und in aufsteigender Reihenfolge für die Werte der ersten Spalte mit NULLs am Anfang.
SELECT
DOC_NUMBER, DOC_DATE
FROM PAYORDER
UNION ALL
SELECT
DOC_NUMBER, DOC_DATE
FROM BUDGORDER
ORDER BY 2 DESC NULLS LAST, 1 ASC NULLS FIRST;