Share via


element_at 功能

適用于:核取標示為是 Databricks SQL 檢查標示為是 Databricks Runtime

傳回 位於 的專案 arrayExprindex

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 函式傳 falseNULL ,而不是引發錯誤。

例子

> 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