Compartilhar via


Função element_at

Aplica-se a: marca de seleção positiva SQL do Databricks marca de seleção positiva Runtime do Databricks

Retorna o elemento de uma arrayExpr em index.

Retorna 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 das chaves de mapExpr

Retornos

Se o primeiro argumento for uma MATRIZ:

  • O resultado é do tipo dos elementos de expr.
  • abs(index) deve estar entre 1 e o comprimento da matriz.
  • Se index for negativo, a função acessará elementos do último ao primeiro.
  • A função gera o erro INVALID_ARRAY_INDEX_IN_ELEMENT_AT quando abs(index) excede o comprimento da matriz.

Se o primeiro argumento for um MAP e não for possível corresponder key com uma entrada em mapExpr, a função retornará nulo.

Observação

No Databricks Runtime, se spark.sql.ansi.failOnElementNotExists for false, a função retornará 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