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.

Azure Databricks vyvolá COMPARATOR_RETURNS_NULL pokud func vrátí hodnotu NULL.

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

Běžné chybové podmínky

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]

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