element_at fungsi

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Menghasilkan elemen arrayExpr di index.

Menampilkan nilai mapExpr untuk key.

Sintaks

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

Argumen

  • arrayExpr: Ekspresi ARRAY.
  • index: Ekspresi BILANGAN BULAT.
  • mapExpr: Ekspresi MAP.
  • key: Ekspresi yang cocok dengan jenis kunci mapExpr

Mengembalikan

Jika argumen pertama adalah ARRAY:

  • Hasilnya adalah jenis elemen expr.
  • abs(index) harus antara 1 dan panjang array.
  • Jika index negatif, fungsi mengakses elemen dari yang terakhir hingga yang pertama.
  • Azure Databricks menaikkan INVALID_INDEX_OF_ZERO jika index adalah 0.
  • Azure Databricks menaikkan INVALID_ARRAY_INDEX_IN_ELEMENT_AT jika abs(index) melebihi panjang array.

Jika argumen pertama adalah MAP dan key tidak dapat dicocokkan dengan entri dalam mapExpr fungsi mengembalikan null.

Catatan

Di Databricks Runtime, jika spark.sql.ansi.failOnElementNotExists adalah false fungsi mengembalikan alih-alih NULL meningkatkan kesalahan.

Kondisi kesalahan umum

Contoh

> 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), 0);
 Error: INVALID_INDEX_OF_ZERO

> 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