ZIP_WITH

将ARRAY数组ab的元素按照位置,使用combiner进行元素级别的合并,返回一个新的ARRAY数组。

命令格式

array<R> zip_with(array<T> <a>, array<S> <b>, function<T, S, R> <combiner>)

参数说明

  • ab:必填。ARRAY数组。array<T>array<S>中的TS指代ARRAY数组元素的数据类型,数组中的元素可以为任意类型。

  • combiner:必填。用于合并ARRAY数组ab中元素的函数(内置函数或自定义函数)或表达式。它的两个输入参数类型分别与ARRAY数组ab中元素的数据类型一致。

返回值说明

返回ARRAY类型。返回规则如下:

  • 新生成的ARRAY数组中元素位置与ab中相应元素的位置相同。

  • 如果ARRAY数组ab的长度不一致,会将长度较短的ARRAY数组使用NULL值进行填充,然后进行合并。

使用示例

--返回[2, 4, 6, NULL]。
select zip_with(array(1,2,3), array(1,2,3,4), (x,y) -> x + y);
说明

使用示例中涉及->的使用,关于Lambda函数->的介绍,详情请参见Lambda函数

相关函数

ZIP_WITH函数属于复杂类型函数,更多对复杂类型数据(例如ARRAY、MAP、STRUCT、JSON数据)的处理函数请参见复杂类型函数