Функция 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]