Devuelve un valor de un parámetro ARRAY o MAP.
Formato del comando
INDEX (<var1>[<var2>])
Notas
Si var1 es de tipo
array<T>, esta función recupera el elemento en el índice var2 de var1. Los elementos del arreglo se indexan a partir de 0.Si var1 es de tipo
map<K, V>, esta función recupera el valor correspondiente a la clave var2 de var1.
Esta operación no utiliza la palabra clave
INDEX. Utilice directamente la sintaxis<var1>[<var2>]. De lo contrario, se devuelve un error.Si var1 es un arreglo, var2 representa el índice. Si var1 es un mapa, var2 representa la clave.
Descripción de parámetros
var1: Obligatorio. Tipo
array<T>omap<K, V>. Enarray<T>, T especifica el tipo de datos de los elementos del arreglo.Tpuede ser cualquier tipo de datos. Enmap<K, V>,KyVrepresentan los tipos de datos de las claves y los valores, respectivamente.-
var2: Obligatorio.
Si var1 es de tipo
array<T>, var2 debe ser un valor BIGINT no negativo.Si var1 es de tipo
map<K, V>, var2 debe tener el mismo tipo de datos que K.
Descripción del valor de retorno
-
Si var1 es de tipo
array<T>, la función devuelve un valor de tipo T. Se aplican las siguientes reglas:Si var2 está fuera de los límites del arreglo var1, la función devuelve NULL.
Si var1 es NULL, la función devuelve NULL.
-
Si var1 es de tipo
map<K, V>, la función devuelve un valor de tipo V. Se aplican las siguientes reglas:Si la clave var2 no existe en el
map<K, V>, la función devuelve NULL.Si var1 es NULL, la función devuelve NULL.
Ejemplos de uso
-
Ejemplo 1: var1 es de tipo
array<T>.-- Returns c. SELECT ARRAY('a','b','c')[2]; -
Ejemplo 2: var1 es de tipo
map<K, V>.-- Returns 1. SELECT STR_TO_MAP("test1=1,test2=2")["test1"];
Funciones relacionadas
INDEX es una función de tipo complejo. Para obtener más información sobre funciones que procesan tipos de datos complejos, como ARRAY, MAP, STRUCT y JSON, consulte Complex type functions.