×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

2.4.5. Сортировка строк (ORDER BY)

После того как запрос сформировал выходную таблицу (после обработки списка выбора), данные в ней могут быть отсортированы. Если сортировка не задана, строки будут возвращены в неопределенном порядке. Фактический порядок в этом случае будет зависеть от типов планов сканирования и соединения, а также от физического порядка на диске, но на него не следует полагаться. Конкретный порядок вывода может быть гарантирован только в том случае, если этап сортировки выбран явно.

Предложение ORDER BY определяет порядок сортировки:

команда SELECT select_list
    предложение FROM table_expression
    ORDER BY sort_expression1 [ASC | DESC] [NULLS { FIRST | LAST }]
             [, sort_expression2 [ASC | DESC] [NULLS { FIRST | LAST }] ...]

В качестве выражений сортировки могут использоваться любые выражения, допустимые в списке выбора команды SELECT. Например:

SELECT a, b FROM table1 ORDER BY a + b, c;

Если указано несколько выражений, последующие значения используются для сортировки строк, значения которых совпали при сравнении по предыдущим выражениям. После каждого выражения может следовать необязательное ASC или DESC ключевое слово для задания направления сортировки по возрастанию или по убыванию. ASC порядок используется по умолчанию. При сортировке по возрастанию сначала располагаются меньшие значения, где ««меньшее»» определяется с помощью < оператора <. Аналогично, порядок сортировки по убыванию определяется с помощью > оператор. [6]

Предложение NULLS FIRST и NULLS LAST опции могут быть использованы для определения того, будут ли значения null следовать до или после значений, отличных от null, в порядке сортировки. По умолчанию значения null при сортировке считаются больше любого значения, отличного от null; то есть NULLS FIRST является значением по умолчанию для DESC порядка, а NULLS LAST в противном случае.

Обратите внимание, что параметры сортировки рассматриваются независимо для каждого столбца. Например, ORDER BY x, y DESC означает ORDER BY x ASC, y DESC, что не то же самое, что ORDER BY x DESC, y DESC.

Табличное выражение sort_expression также может быть псевдонимом или номером выходного столбца, как в:

SELECT a + b AS sum, c FROM table1 ORDER BY sum;
SELECT a, max(b) FROM table1 GROUP BY a ORDER BY 1;

оба этих варианта выполняют сортировку по первому выходному столбцу. Обратите внимание, что имя выходного столбца должно указываться отдельно, то есть его нельзя использовать в составе выражения — например, это не неправильно:

SELECT a + b AS sum, c FROM table1 ORDER BY sum + c;          -- ошибка

Данное ограничение введено для устранения неоднозначности. Неоднозначность все еще возможна, если ORDER BY элемент представляет собой простое имя, которое может соответствовать либо имени выходного столбца, либо столбцу из табличного выражения. В таких случаях используется выходной столбец. Это может привести к путанице только в том случае, если вы используете AS для переименования выходного столбца так, чтобы его имя совпадало с именем какого-либо другого столбца таблицы.

ORDER BY может быть применено к результату UNION, INTERSECT, или EXCEPT объединения, но в этом случае допускается сортировка только по именам или номерам выходных столбцов, а не по выражениям.



[6] Фактически, Digital Q.DataBase использует класс операторов B-дерево по умолчанию для типа данных выражения, чтобы определить порядок сортировки для ASC и DESC. Как правило, типы данных настраиваются так, чтобы < и > операторы соответствовали этому порядку сортировки, но разработчик пользовательского типа данных может выбрать иное поведение.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению