Condividi tramite


Funzione array_sort

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Restituisce array ordinato in base a func.

Sintassi

array_sort(array, func)

Argomenti

  • array: un'espressione che restituisce un array.
  • func: funzione lambda che definisce l'ordinamento.

Valori restituiti

Il tipo di risultato corrisponde al tipo di array.

Se func viene omesso, la matrice viene ordinata in ordine crescente.

Se func viene specificato, accetta due argomenti che rappresentano due elementi della matrice.

La funzione deve restituire -1, 0 o 1 a seconda che il primo elemento sia minore, uguale o maggiore del secondo elemento.

Azure Databricks genera COMPARATOR_RETURNS_NULL se il func restituisce NULL.

Gli elementi NULL vengono posizionati alla fine della matrice restituita.

Condizioni di errore comuni

Esempi

> 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]

-- Comparator must return -1, 0, or 1, not NULL
> SELECT array_sort(array(1, 2), (l, r) -> NULL);
  Error: COMPARATOR_RETURNS_NULL