Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks SQL
Databricks Runtime
Ett parametriserat uttryck som kan skickas till en funktion för att styra dess beteende.
Funktionen accepterar till exempel array_sort en lambda-funktion som ett argument för att definiera en anpassad sorteringsordning.
Syntax
{ param -> expr |
(param1 [, ...] ) -> expr }
Parametrar
-
paramN: En identifierare som används av den överordnade funktionen för att skicka argument för lambda-funktionen. -
expr: Något enkelt uttryck som refererar tillparamN, som inte innehåller en underfråga eller en SQL-användardefinierad funktion.
Returer
Resultattypen definieras av resultattypen expr.
Om det finns fler än en paramNmåste parameternamnen vara unika. Parametrarnas typer anges av den anropande funktionen.
expression Måste vara giltig för dessa typer och resultattypen måste matcha de definierade förväntningarna för de anropande funktionerna.
Exempel
Funktionsfunktionenarray_sort förväntar sig en lambda-funktion med två parametrar.
Parametertyperna är den typ av element i matrisen som ska sorteras.
Uttrycket förväntas returnera ett HELTAL där -1 innebär param1<param2, 0 innebär param1 = param2och 1 i övrigt.
Om du vill sortera en MATRIS med STRING i en lexikal ordning från höger till vänster kan du använda följande lambda-funktion.
(p1, p2) -> CASE WHEN p1 = p2 THEN 0
WHEN reverse(p1) < reverse(p2) THEN -1
ELSE 1 END
Lambda-funktioner definieras och används ad hoc. Så funktionsdefinitionen är argumentet:
> 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]