Partilhar via


element_at função

Aplica-se a:verificar a verificação sim do SQL do Databricks marcada como sim 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 de mapExpr

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