将ARRAY数组a和b的元素按照位置,使用combiner进行元素级别的合并,返回一个新的ARRAY数组。
命令格式
array<R> zip_with(array<T> <a>, array<S> <b>, function<T, S, R> <combiner>)
参数说明
- a、b:必填。ARRAY数组。
array<T>
、array<S>
中的T
、S
指代ARRAY数组元素的数据类型,数组中的元素可以为任意类型。 - combiner:必填。用于合并ARRAY数组a、b中元素的函数(内置函数或自定义函数)或表达式。它的两个输入参数类型分别与ARRAY数组a、b中元素的数据类型一致。
返回值说明
返回ARRAY类型。返回规则如下:
- 新生成的ARRAY数组中元素位置与a、b中相应元素的位置相同。
- 如果ARRAY数组a和b的长度不一致,会将长度较短的ARRAY数组使用NULL值进行填充,然后进行合并。
使用示例
--返回[2, 4, 6, NULL]。
select zip_with(array(1,2,3), array(1,2,3,4), (x,y) -> x + y);