Funzione array_sort

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

Restituisce array l'ordinamento in base a func.

Sintassi

array_sort(array, func)

Argomenti

  • array: espressione che restituisce una matrice.
  • 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.

Se restituisce func altri valori (incluso NULL), array_sort ha esito negativo e genera un errore.

Gli elementi NULL vengono posizionati alla fine della matrice restituita.

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]