Sdílet prostřednictvím


Funkce array_sort

Platí pro:zaškrtnuto ano Databricks SQL zaškrtnuto ano Databricks Runtime

Vrátí array seřazené podle func.

Syntaxe

array_sort(array, func)

Argumenty

  • array: Výraz, který je vyhodnocen jako pole.
  • func: Funkce lambda definující pořadí řazení.

Návraty

Typ výsledku odpovídá typu .array

Pokud func je vynecháno, pole se seřadí ve vzestupném pořadí.

Pokud je func poskytnut, přijímá dva argumenty představující prvky pole.

Funkce musí vrátit hodnotu -1, 0 nebo 1 v závislosti na tom, zda je první prvek menší než, roven nebo větší než druhý prvek.

Pokud func vrátí další hodnoty (včetně hodnoty NULL), array_sort selže a vyvolá chybu.

Prvky NULL jsou umístěny na konci vráceného pole.

Příklady

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