没有理解ARRAY_FILTER(<arr>, <filter_column>)的执行逻辑

Viewed 6

页面链接:https://doris.apache.org/zh-CN/docs/sql-manual/sql-functions/scalar-functions/array-functions/array-filter

image.png

1 Answers

当然可以:


array_filter(array, bool_array) 会按照布尔数组逐位判断是否保留原数组对应位置的元素,1(或 TRUE)表示保留,0(或 FALSE)表示丢弃。布尔数组长度短于原数组时,超出部分元素将被忽略。

示例:

array_filter([1, 2, 3, 4, 5], [0, 1, 0])

解释:保留第2个元素 2(对应布尔值为 1),丢弃第1和第3个,其余位置不参与判断,结果为 [2]