SORT¶
Оператор SORT принудительно отсортирует массив уже полученных промежуточных результатов в текущем блоке. SORT позволяет указать один или несколько критериев и направлений сортировки.
Синтаксис¶
Общий синтаксис следующий:
SORT expression direction Использование¶
Пример запроса, который сортирует по LastName (в порядке возрастания), затем по FirstName (в порядке возрастания), затем по id (в порядке убывания):
1 2 3 | |
Указание направления необязательно. По умолчанию (неявное) направление для выражения сортировки - это порядок по возрастанию. Чтобы явно указать направление сортировки, можно использовать ключевые слова ASC (по возрастанию) и DESC. Несколько критериев сортировки могут быть разделены запятыми. В этом случае направление указывается для каждого выражения отдельно. Например
1 | |
сначала отсортирует документы по фамилии в порядке возрастания, а затем по имени в порядке возрастания.
1 | |
сначала отсортирует документы по LastName в порядке убывания, а затем по FirstName в порядке возрастания.
1 | |
сначала отсортирует документы по LastName в порядке возрастания, а затем по FirstName в порядке убывания.
При итерации по массивам, основанным на коллекциях, порядок документов всегда не определен, если не задан явный порядок сортировки с помощью SORT.
Постоянные выражения SORT могут быть использованы для указания того, что не требуется определенный порядок сортировки.
1 | |
Постоянные выражения SORT будут отсортированы оптимизатором AQL во время оптимизации, но их явное указание может позволить дальнейшую оптимизацию, если оптимизатору не нужно учитывать какой-либо конкретный порядок сортировки. Это особенно актуально после оператора COLLECT, который должен выдать отсортированный результат. Указание дополнительного SORT null после оператора COLLECT позволяет оптимизатору AQL полностью убрать пост-сортировку результатов сбора. Также смотрите COLLECT опция method.