Примеры
В описанном ниже запросе выборка будет отсортирована по возрастанию по столбцам RDB$CHARACTER_SET_ID
, RDB$COLLATION_ID
таблицы 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
То же самое, но сортировка производится по псевдонимам столбцов:
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
В следующем запросе производится сортировка, по номерам столбцов:
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
Как было выше сказано, такая сортировка тоже допустима, но не рекомендуется:
SELECT *
FROM RDB$COLLATIONS
ORDER BY 3, 2
В данном запросе сортировка происходит по второму столбцу таблицы BOOKS
:
SELECT
BOOKS.*,
FILMS.DIRECTOR
FROM BOOKS, FILMS
ORDER BY 2
Warning
|
Обратите внимание на то, что выражения, результатом вычисления которых должны быть целые неотрицательные числа, будут интерпретироваться как номер столбца и вызовут исключение, если они не будут в диапазоне от 1 до числа столбцов.
Примечания:
|
Сортировка по убыванию значений столбца PROCESS_TIME
с размещением значений NULL
в начале выборки:
SELECT *
FROM MSG
ORDER BY PROCESS_TIME DESC NULLS FIRST
Сортировка выборки полученной объединением выборок из двух запросов.Выборка сортируется по убыванию значений второго столбца с размещением NULL
значений в конце списка и возрастанием значений первого столбца с размещением NULL
значений в начале списка.
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