You need to enable JavaScript to run this app.
导航
Lambda 表达式
最近更新时间:2024.11.22 11:13:39首次发布时间:2024.11.22 11:13:39

日志服务允许您在 SQL 分析语句中定义 Lambda 表达式,并将其传递给指定函数,从而增强函数的功能。本文将介绍 Lambda 表达式的基本语法及示例。

语法

说明

Lambda 表达式需与 SQL 函数结合使用,例如 FILTER 函数REDUCE 函数TRANSFORM 函数MAP_FILTER 函数等。

parameter -> expression

参数

说明

parameter

输入参数,可以添加多个参数,使用英文逗号(,)分隔。

expression

对输入参数进行操作的表达式。

x -> x - 2
x -> x > 0
(x, y) -> x + y
x -> try_cast(x AS JSON)
x -> regexp_like(x, '\d+')
x -> if(x > 1, 'y', 'z')

示例

  • 示例1:Lambda 表达式 x -> x > 0
    • 场景
      结合 FILTER 函数和 Lambda 表达式 x -> x > 0,返回数组 [11,-3,null,9,-8] 中大于 0 的元素。

    • 检索与分析语句

      * | SELECT FILTER(array[11,-3,null,9,-8],x -> x > 0)
      
    • 检索与分析结果
      Image

  • 示例2:Lambda 表达式 x -> x * 2
    • 场景
      结合 TRANSFORM 函数和 Lambda 表达式 x -> x * 2,将数组 [99,87,16,43,25]中的各个元素乘以 2,然后返回计算结果。

    • 检索与分析语句

      * | SELECT TRANSFORM(array[99,87,16,43,25],x -> x * 2) LIMIT 1
      
    • 检索与分析结果
      Image

  • 示例3:Lambda 表达式 x -> regexp_like(x, '\d+')
    • 场景
      结合 TRANSFORM 函数和 Lambda 表达式 x -> regexp_like(x, '\d+'),判断 ['region','010','name'] 数组中的各个元素是否包含数字,并返回判断结果。

    • 检索与分析语句

      * | SELECT TRANSFORM(array['region','010','name'],x -> regexp_like(x, '\d+')) LIMIT 1
      
    • 检索与分析结果
      Image