Share via


Función element_at

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí 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 de mapExpr

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