將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);
說明
使用樣本中涉及->
的使用,關於Lambda函數->
的介紹,詳情請參見Lambda函數。
相關函數
ZIP_WITH函數屬於複雜類型函數,更多對複雜類型資料(例如ARRAY、MAP、STRUCT、JSON資料)的處理函數請參見複雜類型函數。