Funzione element_at
Si applica a: Databricks SQL 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 dimapExpr
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