Presto | Lambda 表达式
Lambda 表达式使用 ->
来表示:
1 | x -> x + 1 |
大多数 SQL 表达式都可以在 Lambda 主体中使用,但有几个例外:
- 不支持子查询。如
x -> 2 + (SELECT 3)
- 不支持聚合。如
x -> max(y)
示例
以下示例演示了使用 split_to_map()
函数对字符串进行层层分割,并返回一个映射(Map)。
首先,将字符串按 ;
划分为多个键值对。
其次,进一步将每对键值对按 :
划分为键和对应的值。
如果存在键重复的情况,则调用 Lambda 表达式 (k, v1, v2) -> concat(v1, v2)
来确定映射中的值,这里是将重复键的值拼接起来作为一个值。
1 | select split_to_map('a:1;b:2;a:3', ';', ':', (k, v1, v2) -> concat(v1, v2)) |
(END)
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.