適用対象:
Databricks SQL
Databricks Runtime
動作を制御するために関数に渡すことができるパラメーター化された式。
たとえば、 array_sort 関数は 、カスタムの並べ替え順序を定義するための引数としてラムダ関数を受け入れます。
構文
{ param -> expr |
(param1 [, ...] ) -> expr }
パラメーター
-
paramN: ラムダ関数の引数を渡すために親関数によって使用される識別子。 -
expr: サブクエリまたは SQL ユーザー定義関数を含まない、paramNを参照する単純な式。
戻り値
結果の型は、expr の結果の型によって定義されます。
paramN が複数ある場合、パラメーター名は一意である必要があります。 パラメーターの型は、呼び出し元の関数によって設定されます。
expression は、これらの型に対して有効である必要があります。また、結果の型は、呼び出し元の関数の定義された想定と一致する必要があります。
例
array_sort関数は、2 つのパラメーターを持つラムダ関数を受け取ります。
パラメーターの型は、並べ替えられる配列の要素の型になります。
この式は、-1 は param1<param2、0 は param1 = param2、それ以外は 1 を意味する整数を返すことが想定されています。
文字列の配列を、右から左への字句の順序で並べ替えるには、次のラムダ関数を使用できます。
(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]