Sdílet prostřednictvím


element_at Funkce

Platí pro:zaškrtnutá možnost Ano , kontrola Databricks SQL označená ano Databricks Runtime

Vrátí prvek objektu arrayExpr v index.

Vrátí hodnotu mapExpr pro key.

Syntaxe

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

Argumenty

  • arrayExpr: Výraz ARRAY.
  • index: Výraz INTEGER.
  • mapExpr: Výraz MAP.
  • key: Výraz odpovídající typu klíčů mapExpr

Vrátí

Pokud je prvním argumentem POLE:

  • Výsledek je typu prvků .expr
  • abs(index) musí být mezi 1 a délkou pole.
  • Pokud index je hodnota záporná, funkce přistupuje k prvkům od posledního po první.
  • Funkce vyvolá INVALID_ARRAY_INDEX_IN_ELEMENT_AT chybu, pokud abs(index) překročí délku pole.

Pokud je prvním argumentem map a key nelze ho spárovat s položkou ve mapExpr funkci, vrátí funkce hodnotu null.

Poznámka

V modulu Databricks Runtime funkce pokud spark.sql.ansi.failOnElementNotExists je false vrátí NULL místo vyvolání chyb.

Příklady

> 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