람다 함수
적용 대상: Databricks SQL 검사 예 Databricks Runtime
동작을 제어하기 위해 함수에 전달할 수 있는 매개 변수가 있는 식입니다.
예를 들어 array_sort 함수 는 사용자 지정 정렬 순서를 정의하는 인수로 람다 함수를 허용합니다.
구문
{ param -> expr |
(param1 [, ...] ) -> expr }
매개 변수
paramN
: 부모 함수가 람다 함수에 대한 인수를 전달하는 데 사용하는 식별자 입니다.expr
: 하위 쿼리 또는 SQL 사용자 정의 함수를 포함하지 않는 를 참조하는paramN
모든 단순 식입니다.
반환
결과 형식은 의 expr
결과 형식으로 정의됩니다.
가 두 paramN
개 이상 있는 경우 매개 변수 이름은 고유해야 합니다. 매개 변수의 형식은 호출 함수에 의해 설정됩니다.
는 expression
이러한 형식에 대해 유효해야 하며 결과 형식은 호출 함수의 정의된 예상과 일치해야 합니다.
예
array_sort 함수에는 두 개의 매개 변수가 있는 람다 함수가 예상됩니다.
매개 변수 형식은 정렬할 배열 요소의 형식입니다.
식은 INTEGER를 반환해야 합니다. 여기서 -1은 , 0은 를 의미하고, 그렇지 않으면 1을 의미합니다param1
= <param1
param2
param2
.
STRING 배열을 오른쪽에서 왼쪽 어휘 순서로 정렬하려면 다음 람다 함수를 사용할 수 있습니다.
(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]