Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks SQL
Databricks Runtime
Parametrizovaný výraz, který lze předat funkci za účelem řízení jeho chování.
array_sort Například funkce přijímá funkci lambda jako argument pro definování vlastního pořadí řazení.
Syntaxe
{ param -> expr |
(param1 [, ...] ) -> expr }
Parametry
-
paramN: Identifikátor používaný nadřazenou funkcí k předání argumentů pro funkci lambda. -
expr: Jakýkoli jednoduchý výraz odkazujícíparamN, který neobsahuje poddotaz nebo uživatelem definovanou funkci SQL.
Návraty
Typ výsledku je definován typem výsledku expr.
Pokud existuje více než jedna paramN, musí být názvy parametrů jedinečné. Typy parametrů jsou nastaveny vyvoláním funkce.
Musí expression být platné pro tyto typy a typ výsledku musí odpovídat definovaným očekáváním vyvolání funkcí.
Příklady
Funkce array_sort očekává lambda funkci se dvěma parametry.
Typy parametrů budou typem prvků pole, které se mají seřadit.
Očekává se, že výraz vrátí celé číslo, kde -1 znamená param1<param2, 0 znamená param1 = param2 a 1 jinak.
Pokud chcete seřadit POLE ŘETĚZCE v lexikálním pořadí zprava doleva, můžete použít následující funkci lambda.
(p1, p2) -> CASE WHEN p1 = p2 THEN 0
WHEN reverse(p1) < reverse(p2) THEN -1
ELSE 1 END
Funkce lambda se definují a používají ad hoc. Definice funkce je tedy argumentem:
> SELECT array_sort(array('Hello', 'World'),
(p1, p2) -> CASE WHEN p1 = p2 THEN 0
WHEN reverse(p1) < reverse(p2) THEN -1
ELSE 1 END);
[World, Hello]