- Categorias:
MAP_INSERT¶
Retorna um novo MAP que consiste no MAP de entrada com um novo par chave-valor inserido. Ou seja, uma chave existente atualizada com um novo valor.
Sintaxe¶
Argumentos¶
mapO mapa de origem no qual o novo par chave-valor é inserido.
keyA nova chave a ser inserida no mapa. Deve ser diferente de todas as chaves existentes no mapa, a menos que
updateFlagesteja definido como TRUE.valueO valor associado à chave.
Opcional
updateFlagUm sinalizador booleano que, quando definido como TRUE, especifica o valor de entrada usado para atualizar/substituir uma chave existente no mapa, em vez de inserir um novo par chave-valor.
O padrão é FALSE.
Retornos¶
Retorna um MAP que consiste no MAP de entrada com um novo par chave-valor inserido ou uma chave existente atualizada com um novo valor.
Notas de uso¶
O tipo da expressão-chave deve corresponder ao tipo da chave do mapa. Se o tipo for VARCHAR, os tipos poderão ter comprimentos diferentes.
A função é compatível com os valores JSON nulos, mas não com os valores ou chaves SQL NULL:
Se
keyfor qualquer string diferente de NULL evaluefor um JSON nulo (por exemplo,PARSE_JSON('NULL')), então o par chave-valor será inserido no mapa retornado.Se
keyfor qualquer string diferente de NULL evaluefor um SQL NULL (por exemplo,NULL), então o valor será convertido em JSON null e o par chave-valor será inserido no mapa retornado.Se
keyfor um SQL NULL, o par chave-valor será omitido do mapa retornado.
Se
updateFlagestiver definido como TRUE, a entrada existentekeyserá atualizada para a entradavalue. SeupdateFlagfor omitido ou definido como FALSE e a chave de entrada já existir no mapa, um erro será retornado.Se
updateFlagestiver definido como TRUE, mas a chave correspondente ainda não existir no mapa, o par chave-valor será adicionado.
Exemplos¶
Insira um terceiro par chave-valor em um mapa que contenha dois pares chave-valor:
Insira dois novos pares chave-valor, omitindo um par chave-valor, em um mapa vazio:
Key_Oneconsiste em um valor JSON nulo.Key_Twoconsiste em um valor SQL NULL, que é convertido em um valor JSON null.Key_Threeconsiste em uma cadeia de caracteres contendo “nulo”.
Atualizar um par chave-valor existente ("k1": 100) com um novo valor ("string-value"):
Crie uma tabela temporária que contenha valores MAP:
Consulte a tabela para mostrar os dados:
Usando as chaves na coluna ins_key e os valores na coluna ins_val, insira ou atualize pares chave-valor nos mapas na coluna attrs: