Partilhar via


Função element_at

Aplica-se a: Marque Sim Databricks SQL Marque Sim Databricks Runtime

Devolve o elemento de um arrayExpr at index.

Devolve o valor de mapExpr para key.

Sintaxe

element_at(arrayExpr, index)
element_at(mapExpr, key)

Argumentos

  • arrayExpr: Uma expressão ARRAY.
  • index: Uma expressão INTEIRA.
  • mapExpr: Uma expressão MAP.
  • key: Uma expressão correspondente ao tipo das teclas de mapExpr

Devoluções

Se o primeiro argumento for um ARRAY:

  • O resultado é do tipo dos elementos de expr.
  • abs(index) deve estar entre 1 e o comprimento da matriz.
  • Se index for negativa, a função acessa elementos do último para o 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 MAP e key não puder ser correspondido a uma entrada na mapExpr função retornará null.

Nota

No Databricks Runtime, if spark.sql.ansi.failOnElementNotExists is false a função retorna 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