Lambda 함수
적용 대상: Databricks SQL Databricks Runtime
동작을 제어하기 위해 함수에 전달할 수 있는 매개 변수화된 식입니다.
예를 들어 array_sort 함수는 람다 함수를 인수로 받아 사용자 지정 정렬 순서를 정의합니다.
구문
{ param -> expr |
(param1 [, ...] ) -> expr }
Parameters
-
paramN
: 부모 함수가 람다 함수에 대한 인수를 전달하는 데 사용하는 identifier. -
expr
: 하위 쿼리 또는 SQL 사용자 정의 함수를 포함하지 않는 단순 식 참조paramN
입니다.
반품
결과 형식은 expr
의 결과 형식으로 정의됩니다.
둘 이상의 paramN
이 있는 경우 매개 변수 이름은 고유해야 합니다.
parameters 형식은 호출 함수에 의해 set으로 정의됩니다.
expression
은 이러한 형식에 대해 유효해야 하고 결과 형식은 호출 함수의 정의된 예상과 일치해야 합니다.
예제
array_sort 함수 함수에는 두 개의 parameters있는 람다 함수가 예상됩니다.
매개 변수 형식은 정렬할 배열 요소의 형식입니다.
이 표현은 INTEGER where -1일 경우 param1
<param2
를, 0일 경우 param1
= param2
를, 기타 경우에는 1을 반환하도록 예상됩니다.
STRING의 ARRAY를 오른쪽에서 왼쪽 어휘 순서로 정렬하려면 다음 람다 함수를 사용할 수 있습니다.
(p1, p2) -> CASE WHEN p1 = p2 THEN 0
WHEN reverse(p1) < reverse(p2) THEN -1
ELSE 1 END
람다 함수는 임시로 정의되고 사용됩니다. 따라서 함수 정의는 다음과 같은 인수입니다.
> 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]