Condividi tramite


Funzione element_at

Si applica a: segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Restituisce l’elemento di un arrayExpr a index.

Restituisce il valore di mapExpr per key.

Sintassi

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

Argomenti

  • arrayExpr: espressione ARRAY.
  • index: espressione INTEGER.
  • mapExpr: espressione MAP.
  • key: espressione che corrisponde al tipo di chiavi di mapExpr

Valori restituiti

Se il primo argomento è un array:

  • Il risultato è del tipo degli elementi di expr.
  • abs(index) deve essere compreso tra 1 e la lunghezza della matrice.
  • Se index è negativo, la funzione accede agli elementi dall'ultimo al primo.
  • La funzione genera INVALID_ARRAY_INDEX_IN_ELEMENT_AT errore se abs(index) supera la lunghezza della matrice.

Se il primo argomento è map e key non può essere confrontato con una voce nella mapExpr funzione restituisce null.

Nota

In Databricks Runtime, se spark.sql.ansi.failOnElementNotExists è false la funzione restituisce NULL anziché generare errori.

Esempi

> 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