FILTER 函数

功能描述

FILTER 函数用于根据给定的 lambda 表达式筛选数组(array)中的元素。该函数支持两种形式的 lambda 表达式:单参数形式和双参数形式(包含元素下标)。

参数说明

  • array: 输入的数组,类型为 array<T>
  • x -> expr: 单参数形式的 lambda 表达式,其中 x 代表数组中的元素,expr 需要返回布尔值(true 或 false)。
  • (x, i) -> expr: 双参数形式的 lambda 表达式,其中 x 代表数组中的元素,i 代表元素的下标(从 0 开始计数),expr 需要返回布尔值(true 或 false)。

返回类型

返回一个新的数组,类型为 array<T>,包含满足 lambda 表达式的元素。

使用示例

  1. 筛选出数组中的奇数元素:
    SELECT filter(array(2, 1, 3, 5, 4), x -> x % 2 != 0);
    -- 结果:[1, 3, 5]
  2. 选取数组中下标小于等于 2 的元素: <= 2); -- 结果:[4, 2, 6]
  3. 过滤出数组中大于等于 10 的元素:
    SELECT filter(array(10, 15, 20, 25, 30), x ->
  4. 获取数组中下标为奇数的元素:
    SELECT filter(array(1, 2, 3, 4, 5, 6), (x, i) -> i % 2 = 0);
    -- 结果:[1, 3, 5]

注意事项

  • 确保 lambda 表达式中的 expr 返回值是布尔类型。
  • 当使用双参数形式的 lambda 表达式时,i 的取值范围是从 0 到数组长度减 1。

通过使用 FILTER 函数,您可以轻松地对数组进行条件筛选,从而更高效地处理数据。

联系我们
预约咨询
微信咨询
电话咨询