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 NULL
s 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 NULL
s am Ende der Menge;und in aufsteigender Reihenfolge für die Werte der ersten Spalte mit NULL
s 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;