合并多個給定數組並返回一個結構數組,其中第N個結構包含輸入數組的所有第N個值。
命令格式
array<struct<T, U, ...>> arrays_zip(array<T> <a>, array<U> <b>[, ...])
參數說明
a、b:必填。ARRAY數組。array<T>
及array<U>
中的T
和U
指代ARRAY數組元素的資料類型,數組中的元素可以為任意類型。
數組中的元素可以為如下類型:
TINYINT、SMALLINT、INT、BIGINT
FLOAT、DOUBLE
BOOLEAN
DECIMAL、DECIMALVAL
DATE、DATETIME、TIMESTAMP、IntervalDayTime、IntervalYearMonth
STRING、BINARY、VARCHAR、CHAR
ARRAY、STRUCT、MAP
傳回值說明
返回ARRAY類型。返回規則如下:
產生的結構數組中第N個結構包含輸入數組的所有第N個值, 不足N的元素以NULL填充。
如果輸入ARRAY數組中任意一個為NULL,返回結果為NULL。
使用樣本
樣本1:通過ARRAY數組
array(1, 2, 3)
和array(2, 3, 4)
構造結構數組。命令樣本如下。--返回[{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數組
array(1, 2, 3)
和array(4, 5)
構造結構數組。命令樣本如下。--返回[{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資料)的處理函數請參見複雜類型函數。