Поделиться через


Функция array_sort

Область применения: флажок Databricks SQL флажок Databricks Runtime

Возвращает массив array, отсортированный в соответствии с параметром func.

Синтаксис

array_sort(array, func)

Аргументы

  • array: выражение, результатом которого является массив.
  • func: лямбда-функция, определяющая порядок сортировки.

Возвраты

Тип результата соответствует типу array.

Если аргумент func не указан, массив сортируется в порядке возрастания.

Если аргумент func указан, принимается два аргумента, представляющие два элемента массива.

Функция возвращает значение -1, 0 или 1, если первый элемент соответственно меньше второго, равен ему или больше него.

Если функция funcвозвращает другие значения (включая значение NULL), array_sort происходит сбой и возвращается ошибка.

Элементы со значением NULL помещаются в конец возвращаемого массива.

Примеры

> SELECT array_sort(array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END);
 [1,5,6]
> SELECT array_sort(array('bc', 'ab', 'dc'),
                    (left, right) -> CASE WHEN left IS NULL and right IS NULL THEN 0
                                          WHEN left IS NULL THEN -1
                                          WHEN right IS NULL THEN 1
                                          WHEN left < right THEN 1
                                          WHEN left > right THEN -1 ELSE 0 END);
 [dc,bc,ab]
> SELECT array_sort(array('b', 'd', null, 'c', 'a'));
 [a,b,c,d,NULL]