element_at
函式
適用於: Databricks SQL Databricks Runtime
返回 index
處的 arrayExpr
元素。
傳回 key
的 mapExpr
值。
語法
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.failOnElementNotExists
是 false
函式會傳回 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