Calcula a união de vários objetos MAP.
Formato do comando
map<K, V> map_concat([string <mapDupKeyPolicy>,] map<K, V> <a>, map<K, V> <b>[,...])
Descrição dos parâmetros
-
mapDupKeyPolicy: opcional. Tipo STRING. Especifica a ação a ser tomada quando chaves duplicadas forem encontradas. Valores válidos:
-
exception: se forem encontradas chaves duplicadas, um erro será retornado.
-
last_win: se forem encontradas chaves duplicadas, o valor posterior substituirá o valor anterior.
Esse parâmetro também pode ser definido no nível de sessão por meio do parâmetro
odps.sql.map.key.dedup.policy, por exemplo,set odps.sql.map.key.dedup.policy=exception;. Quando não definido, o valor padrão é last_win.NotaO comportamento do MaxCompute prioriza a configuração de mapDupKeyPolicy na função. Quando mapDupKeyPolicy não estiver configurado na função, a configuração do parâmetro
odps.sql.map.key.dedup.policyserá utilizada. -
-
a e b: obrigatório. Objetos MAP. Os tipos de dados dos parâmetros de vários objetos MAP devem ser consistentes. Os parâmetros
KeVemmap<K, V>referem-se, respectivamente, à chave e ao valor do objeto MAP.
Valor de retorno
Retorna o tipo MAP. As regras de retorno são as seguintes:
-
Quando um objeto MAP é NULL ou a chave de um objeto MAP é NULL, retorna
NULLou gera um erro. -
Quando os tipos de dados de vários objetos MAP não são consistentes, um erro é retornado.
Exemplos de uso
--Retorna {1:a, 2:b, 3:c}.
select map_concat(map(1, 'a', 2, 'b'), map(3, 'c'));
--Retorna {1:a, 2:d, 3:c}.
select map_concat('last_win', map(1, 'a', 2, 'b'), map(3, 'c'), map(2, 'd'));
Funções relacionadas
A função MAP_CONCAT pertence às funções de tipo complexo. Para mais funções que processam dados de tipos complexos (como ARRAY, MAP, STRUCT e JSON), consulte Funções de tipo complexo.