Função array_sort
Aplica-se a: SQL do Databricks Runtime do Databricks
Retorna array
classificado de acordo com func
.
Sintaxe
array_sort(array, func)
Argumentos
array
: uma expressão avaliada como uma matriz.func
: uma função lambda que define a ordem de classificação.
Retornos
O tipo de resultado corresponde ao tipo de array
.
Se func
for omitido, a matriz será classificada em ordem crescente.
Se func
for fornecido, serão necessários dois argumentos que representem dois elementos da matriz.
A função deve retornar -1, 0 ou 1, dependendo se o primeiro elemento for menor do que, igual a ou maior do que o segundo elemento.
Se o func
retornar outros valores (incluindo NULL), array_sort
falhará e gerará um erro.
Os elementos NULL serão colocados no final da matriz retornada.
Exemplos
> 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]