複数の指定された配列をマージし、struct配列を返します。この配列では、N番目の構造体に入力配列のN番目の要素がすべて含まれます。
構文
array<struct<T, U, ...>> arrays_zip(array<T> <a>, array<U> <b>[, ...])パラメーター
aおよびb: 必須。 このパラメーターは、配列を指定します。 array<T> のTとarray<U> のUは、配列内の要素のデータ型を指定します。 要素は任意のデータ型にすることができます。
次のデータ型がサポートされています。
TINYINT、SMALLINT、INT、およびBIGINT
フロートとダブル
BOOLEAN
デシマルとデシマル
DATE、DATETIME、TIMESTAMP、IntervalDayTime、およびIntervalYearMonth
STRING、BINARY、VARCHAR、CHAR
アレイ、STRUCT、マップ
戻り値
ARRAY型の値が返されます。 戻り値は、次のルールによって異なります。
生成されたstruct配列のN番目のstructには、入力配列のN番目の要素がすべて含まれます。 配列に含まれる要素がN個未満の場合、配列のN番目の要素としてnullが使用されます。
1つ以上の入力配列がnullの場合、nullが返されます。
例
例1:
array(1, 2, 3)とarray(2, 3, 4)をstruct配列にマージします。 例:-- The return value is [{0:1, 1:2}, {0:2, 1:3}, {0:3, 1:4}]. select arrays_zip(array(1, 2, 3), array(2, 3, 4));例2:
array(1、2、3)とarray(4、5)をstruct配列にマージします。 例:-- The return value is [{0:1, 1:4}, {0:2, 1:5}, {0:3, 1:null}]. select arrays_zip(array(1, 2, 3), array(4, 5));
関連関数
ARRAYS_ZIPは複合型関数です。 ARRAY、MAP、STRUCT、JSONなどの複雑なデータ型のデータを処理するために使用される関数の詳細については、複合型関数.