Funkcja array_sort
Dotyczy: Databricks SQL Databricks Runtime
Zwraca array
posortowane według func
.
Składnia
array_sort(array, func)
Argumenty
array
: wyrażenie, które oblicza tablicę.func
: Funkcja lambda definiująca kolejność sortowania.
Zwraca
Typ wyniku jest zgodny z typem .array
Jeśli func
zostanie pominięta, tablica jest sortowana w kolejności rosnącej.
Jeśli func
zostanie podany, przyjmuje dwa argumenty reprezentujące dwa elementy tablicy.
Funkcja musi zwrócić wartość -1, 0 lub 1 w zależności od tego, czy pierwszy element jest mniejszy niż, równy lub większy niż drugi element.
func
Jeśli zwracane są inne wartości (w tym NULL), array_sort
kończy się niepowodzeniem i zgłasza błąd.
Elementy NULL są umieszczane na końcu zwracanej tablicy.
Przykłady
> 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]