Funktionen element_at
Gäller för: Databricks SQL Databricks Runtime
Returnerar elementet i ett arrayExpr
på index
.
Returnerar värdet mapExpr
för för key
.
Syntax
element_at(arrayExpr, index)
element_at(mapExpr, key)
Argument
arrayExpr
: Ett ARRAY-uttryck.index
: Ett INTEGER-uttryck.mapExpr
: Ett MAP-uttryck.key
: Ett uttryck som matchar typen av nycklar förmapExpr
Returer
Om det första argumentet är en MATRIS:
- Resultatet är av typen av elementen
expr
i . - abs(index) måste vara mellan 1 och matrisens längd.
- Om
index
är negativt kommer funktionen åt element från den sista till den första. - Funktionen genererar INVALID_ARRAY_INDEX_IN_ELEMENT_AT fel om
abs(index)
överskrider matrisens längd.
Om det första argumentet är en MAP och key
inte kan matchas med en post i mapExpr
funktionen returneras null.
Kommentar
I Databricks Runtime, om spark.sql.ansi.failOnElementNotExists
är false
funktionen returnerar NULL
i stället för att skapa fel.
Exempel
> 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