람다 함수

적용 대상:검사 예 Databricks SQL 검사 예 Databricks Runtime으로 표시됨

동작을 제어하기 위해 함수에 전달할 수 있는 매개 변수가 있는 식입니다.

예를 들어 array_sort 함수 는 사용자 지정 정렬 순서를 정의하는 인수로 람다 함수를 허용합니다.

구문

{ param -> expr |
  (param1 [, ...] ) -> expr }

매개 변수

  • paramN: 부모 함수가 람다 함수에 대한 인수를 전달하는 데 사용하는 식별자 입니다.
  • expr: 하위 쿼리 또는 SQL 사용자 정의 함수를 포함하지 않는 를 참조하는 paramN모든 단순 식입니다.

반환

결과 형식은 의 expr결과 형식으로 정의됩니다.

가 두 paramN개 이상 있는 경우 매개 변수 이름은 고유해야 합니다. 매개 변수의 형식은 호출 함수에 의해 설정됩니다. 는 expression 이러한 형식에 대해 유효해야 하며 결과 형식은 호출 함수의 정의된 예상과 일치해야 합니다.

array_sort 함수에는 두 개의 매개 변수가 있는 람다 함수가 예상됩니다. 매개 변수 형식은 정렬할 배열 요소의 형식입니다. 식은 INTEGER를 반환해야 합니다. 여기서 -1은 , 0은 를 의미하고, 그렇지 않으면 1을 의미합니다param1 = <param1param2param2.

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]