element_at
função
Aplica-se a: do SQL do Databricks Databricks Runtime
Devolve o elemento de um arrayExpr
em index
.
Devolve o valor de mapExpr
para key
.
Sintaxe
element_at(arrayExpr, index)
element_at(mapExpr, key)
Argumentos
arrayExpr
: uma expressão MATRIZ.index
: uma expressão INTEGER.mapExpr
: uma expressão MAP.key
: uma expressão que corresponde ao tipo de chaves demapExpr
Devolve
Se o primeiro argumento for uma MATRIZ:
- O resultado é do tipo dos elementos de
expr
. - abs(index) tem de ter entre 1 e o comprimento da matriz.
- Se
index
for negativa, a função acede aos elementos do último ao primeiro. - A função gera INVALID_ARRAY_INDEX_IN_ELEMENT_AT erro se
abs(index)
exceder o comprimento da matriz.
Se o primeiro argumento for UM MAPA e key
não for possível corresponder a uma entrada na mapExpr
função, devolve nulo.
Nota
No Databricks Runtime, se spark.sql.ansi.failOnElementNotExists
for false
a função devolve NULL
em vez de gerar erros.
Exemplos
> 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