共用方式為


element_at函式

適用於: 核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

返回 index 處的 arrayExpr 元素。

傳回 keymapExpr 值。

語法

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

引數

  • arrayExpr:ARRAY 表達式。
  • index:INTEGER 運算式。
  • mapExpr:MAP 運算式。
  • key:符合 索引鍵類型的表達式 mapExpr

傳回

如果第一個自變數是ARRAY:

  • 結果是 專案的型 expr別。
  • abs(index) 必須介於 1 到陣列的長度之間。
  • 如果 index 是負數,函式會從最後一個存取元素到第一個。
  • 如果abs(index)超過數位的長度,函式會引發INVALID_ARRAY_INDEX_IN_ELEMENT_AT錯誤。

如果第一個自變數是 MAP,且 key 無法比對函式中的 mapExpr 項目會傳回 null。

注意

在 Databricks Runtime 中,如果 spark.sql.ansi.failOnElementNotExistsfalse 函式會傳回 NULL ,而不是引發錯誤。

範例

> 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