Partilhar via


Função array_sort

Aplica-se a: Marque Sim Databricks SQL Marque Sim Databricks Runtime

Devoluções array ordenadas de acordo com func.

Sintaxe

array_sort(array, func)

Argumentos

  • array: Uma expressão que é avaliada como uma matriz.
  • func: Uma função lambda que define a ordem de classificação.

Devoluções

O tipo de resultado corresponde ao tipo de array.

Se func for omitida, a matriz será classificada em ordem crescente.

Se func for fornecido, são necessários dois argumentos que representam dois elementos da matriz.

A função deve retornar -1, 0 ou 1 dependendo se o primeiro elemento é menor, igual ou maior que o segundo elemento.

Se o func retorna outros valores (incluindo NULL), array_sort falha e gera um erro.

Os elementos NULL sã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]