將ARRAY數組a和b組合成一個MAP對象。
命令格式
map<K, V> map_from_arrays([string <mapDupKeyPolicy>,] array<K> <a>, array<V> <b>))
參數說明
mapDupKeyPolicy:可選。STRING類型。指定出現重複Key時的處理方式。取值範圍如下:
exception:如果出現重複的Key,返回報錯。
last_win:如果出現重複的Key,後邊的值將覆蓋前邊的值。
該參數也可以在Session層級通過
odps.sql.map.key.dedup.policy
參數進行設定,例如set odps.sql.map.key.dedup.policy=exception;
,不設定時該參數預設值為last_win。說明MaxCompute的行為實現優先以函數中mapDupKeyPolicy的取值為準,當函數未配置mapDupKeyPolicy時,以
odps.sql.map.key.dedup.policy
參數的取值為準。a:必填。ARRAY數組。對應產生MAP的Key值。
array<K>
中的K
指代ARRAY數組元素的資料類型,數組中的元素可以為任意類型。b:必填。ARRAY數組。對應產生MAP的Value值。
array<V>
中的V
指代ARRAY數組元素的資料類型,數組中的元素可以為任意類型。
傳回值說明
返回MAP類型。返回規則如下:
如果a或b為NULL,返回結果為NULL。
如果a中元素包含NULL值或兩個數組長度不相等,會返回報錯。
使用樣本
--返回{1:2, 3:4}。
select map_from_arrays(array(1.0, 3.0), array('2', '4'));
--返回{1:2, 3:6}。
select map_from_arrays('last_win', array(1.0, 3.0, 3), array('2', '4', '6'));
相關函數
MAP_FROM_ARRAYS函數屬於複雜類型函數,更多對複雜類型資料(例如ARRAY、MAP、STRUCT、JSON資料)的處理函數請參見複雜類型函數。