要素位置とコンバイナに基づいて要素レベルで配列aと配列bをマージし、新しい配列を返します。
構文
array<R> zip_with(array<T> <a>, array<S> <b>, function<T, S, R> <combiner>)パラメーター
aおよびb: 必須。 このパラメーターは、配列を指定します。
array<T>のTとarray<S>のSは、配列内の要素のデータ型を指定します。 要素は任意のデータ型にすることができます。combiner: 必須です。 このパラメーターには、要素レベルで配列aと配列bをマージするために使用される組み込み関数、ユーザー定義関数、または式を指定します。 コンバイナは、2つの入力パラメータからなる。 1つの入力パラメーターは、配列aの要素と同じデータ型である必要があります。 もう1つの入力パラメーターは、配列bの要素と同じデータ型である必要があります。
戻り値
ARRAY型の値が返されます。 戻り値は、次のルールによって異なります。
返される配列の要素は、配列aおよび配列bの要素と同じ位置にあります。
配列aと配列bの長さが異なる場合、配列がマージされる前にnull要素が短い配列に追加されます。
例
-- The return value is [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などの複雑なデータ型のデータを処理するために使用される関数の詳細については、複合型関数.