Retorna o valor em um parâmetro do tipo ARRAY ou MAP que atenda à condição especificada.
Formato do comando
INDEX (<var1>[<var2>])
Observações
Se var1 for do tipo
array<T>, a função obtém o elemento na posição var2 de var1. A indexação dos elementos do array começa em 0, da esquerda para a direita.Caso var1 seja do tipo
map<K, V>, a função retorna o valor cuja chave corresponda a var2 em var1.
Ao utilizar esta função, omita
indexe execute diretamente<var1>[<var2>]. Caso contrário, um erro será retornado.Quando var1 for um array, var2 representa o índice; quando var1 for um map, var2 representa a chave.
Descrição dos parâmetros
var1: obrigatório. Aceita os tipos
array<T>oumap<K, V>. Emarray<T>,Tindica o tipo de dados dos elementos do array, que podem ser de qualquer tipo. Emmap<K, V>,KeVrepresentam, respectivamente, a chave e o valor do objeto MAP.-
var2: obrigatório.
Para var1 do tipo
array<T>, var2 deve ser do tipo BIGINT e maior ou igual a 0.Se var1 for do tipo
map<K, V>, var2 deve ter o mesmo tipo de K.
Valores de retorno
-
Quando var1 é do tipo
array<T>, a função retorna um valor do tipo T, conforme as regras abaixo:Retorna NULL se var2 exceder o número de elementos de var1.
Retorna NULL caso var1 seja NULL.
-
Para var1 do tipo
map<K, V>, o retorno é do tipo V, seguindo estas regras:O resultado é NULL quando não existe nenhuma chave igual a var2 no
map<K, V>.O resultado é NULL se var1 for NULL.
Exemplos de uso
-
Exemplo 1: var1 do tipo
array<T>. Veja o comando abaixo.--返回c。 SELECT ARRAY('a','b','c')[2]; -
Exemplo 2: var1 do tipo
map<K, V>. Confira o comando a seguir.--返回1。 SELECT STR_TO_MAP("test1=1,test2=2")["test1"];
Funções relacionadas
A função INDEX pertence ao grupo de funções de tipos complexos. Para conhecer outras funções de processamento de dados de tipos complexos (como ARRAY, MAP, STRUCT e JSON), consulte Funções de tipos complexos.