Función element_at
Se aplica a: Databricks SQL Databricks Runtime
Devuelve el elemento de un arrayExpr
en index
.
Devuelve el valor de mapExpr
para key
.
Sintaxis
element_at(arrayExpr, index)
element_at(mapExpr, key)
Argumentos
arrayExpr
: expresión ARRAY.index
: una expresión INTEGER.mapExpr
: expresión MAP.key
: expresión que coincide con el tipo de claves demapExpr
Devoluciones
Si el primer argumento es de matriz:
- El resultado es del tipo de los elementos de
expr
. - abs(index) debe tener entre 1 y la longitud de la matriz.
- Si
index
es negativo, la función accede a los elementos del último al primero. - La función genera un error INVALID_ARRAY_INDEX_IN_ELEMENT_AT si
abs(index)
supera la longitud de la matriz.
Si el primer argumento es un valor de mapa y key
no puede coincidir con una entrada en mapExpr
, la función devuelve null.
Nota:
En Databricks Runtime, si spark.sql.ansi.failOnElementNotExists
es false
la función devuelve NULL
en lugar de generar errores.
Ejemplos
> SELECT element_at(array(1, 2, 3), 2);
2
> SELECT try_element_at(array(1, 2, 3), 5);
NULL
> SELECT element_at(array(1, 2, 3), 5);
Error: INVALID_ARRAY_INDEX_IN_ELEMENT_AT
> SELECT element_at(map(1, 'a', 2, 'b'), 2);
b
> SELECT element_at(map(1, 'a', 2, 'b'), 3);
NULL
> SELECT try_element_at(map(1, 'a', 2, 'b'), 3);
NULL