Retorna um valor de um parâmetro ARRAY ou MAP.
Formato do comando
INDEX (<var1>[<var2>])
Observações
Se var1 for um
array<T>, esta função recupera o elemento no índice var2 de var1. A indexação dos elementos do array começa em 0.Se var1 for um
map<K, V>, esta função recupera o valor da chave var2 em var1.
Esta operação não utiliza a palavra-chave
INDEX. Use diretamente a sintaxe<var1>[<var2>]. Caso contrário, a função retorna um erro.Se var1 for um array, var2 é o índice. Se var1 for um map, var2 é a chave.
Descrição dos parâmetros
var1: Obrigatório. Um
array<T>oumap<K, V>. Noarray<T>, T especifica o tipo de dados dos elementos do array.Tpode ser qualquer tipo de dados. Nomap<K, V>,KeVrepresentam os tipos de dados das chaves e dos valores, respectivamente.-
var2: Obrigatório.
Se var1 for um
array<T>, var2 deve ser um valor BIGINT não negativo.Se var1 for um
map<K, V>, var2 deve ter o mesmo tipo de dados que K.
Descrição do valor de retorno
-
Se var1 for um
array<T>, a função retorna um valor do tipo T. Aplicam-se as seguintes regras:Se var2 estiver fora dos limites do array var1, a função retorna NULL.
Se var1 for NULL, a função retorna NULL.
-
Se var1 for um
map<K, V>, a função retorna um valor do tipo V. Aplicam-se as seguintes regras:Se a chave var2 não existir no
map<K, V>, a função retorna NULL.Se var1 for NULL, a função retorna NULL.
Exemplos de uso
-
Exemplo 1: var1 é um
array<T>.-- Returns c. SELECT ARRAY('a','b','c')[2]; -
Exemplo 2: var1 é um
map<K, V>.-- Returns 1. SELECT STR_TO_MAP("test1=1,test2=2")["test1"];
Funções relacionadas
INDEX é uma função para tipos complexos. Para obter mais informações sobre funções que processam tipos de dados complexos, como ARRAY, MAP, STRUCT e JSON, consulte Complex type functions.