Mescla dois objetos MAP de entrada, input1 e input2, para gerar um novo objeto MAP. As chaves do novo MAP correspondem à união das chaves dos dois MAPs originais. A função func calcula o valor de cada chave do novo MAP.
Formato do comando
<K, V1, V2, V3> map<K, V3> map_zip_with(map<K, V1> <input1>, map<K, V2> <input2>, function<K, V1, V2, V3> <func>)
Descrição dos parâmetros
input1 e input2: obrigatórios. Objetos MAP. Em
map<K, V>, os elementosKeVrepresentam, respectivamente, a chave e o valor do objeto MAP.func: obrigatório. A função func aceita três parâmetros de entrada correspondentes à chave do MAP, ao valor associado a essa chave em input1 e ao valor correspondente em input2. Se a chave não existir em input1 ou em input2, o parâmetro correspondente em func receberá NULL.
Valor de retorno
Retorna o tipo definido por func.
Exemplos de uso
--返回{1:[1, 1, 4], 2:[2, 2, 5], 3:[3, NULL, NULL], 4:[4, NULL, 7]}。
select map_zip_with(map(1, 1, 2, 2, 3, null), map(1, 4, 2, 5, 4, 7), (k, v1, v2) -> array(k, v1, v2));
Os exemplos utilizam o operador ->. Para obter mais informações sobre o uso de -> em funções Lambda, consulte Lambda functions.
Funções relacionadas
A função MAP_ZIP_WITH pertence à categoria de funções de tipos complexos. Para consultar outras funções de processamento de dados de tipos complexos (como ARRAY, MAP, STRUCT e JSON), veja Complex type functions.