element_at
功能
適用于: Databricks SQL Databricks Runtime
傳回 位於 的專案 arrayExpr
index
。
傳 mapExpr
回 的值 key
。
語法
element_at(arrayExpr, index)
element_at(mapExpr, key)
參數
arrayExpr
:ARRAY 運算式。index
:INTEGER 運算式。mapExpr
:MAP 運算式。key
:符合 索引鍵類型的運算式mapExpr
返回
如果第一個引數是 ARRAY:
- 結果是 的專案
expr
類型。 - abs (索引) 必須介於 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