全部產品
Search
文件中心

MaxCompute:INDEX

更新時間:Jun 19, 2024

返回MAP型別參數中滿足指定條件的Value。

注意事項

  • 如果var1array<T>類型,擷取var1的第var2個元素。ARRAY數組元素編號自左往右,從0開始計數。

  • 如果var1map<K, V>類型,擷取var1中Key為var2的Value。

說明

使用該函數時需要去掉index,請直接執行<var1>[<var2>],否則會返回報錯。

命令格式

index(<var1>[<var2>])

參數說明

  • var1:必填。array<T>類型或map<K, V>類型。array<T>中的T指代ARRAY數組元素的資料類型,數組中的元素可以為任意類型。map<K, V>中的KV指代MAP對象的Key、Value。

  • var2:必填。

    • 如果var1array<T>類型,則var2為BIGINT類型且大於等於0。

    • 如果var1map<K, V>類型,則var2K的類型保持一致。

傳回值說明

  • 如果var1array<T>類型,函數返回T類型。返回規則如下:

    • 如果var2超出var1的元素數目範圍,返回結果為NULL。

    • 如果var1為NULL,返回結果為NULL。

  • 如果var1map<K, V>類型,函數返回V類型。返回規則如下:

    • 如果map<K, V>中不存在Key為var2的情況,返回結果為NULL。

    • 如果var1為NULL,返回結果為NULL。

使用樣本

  • 樣本1:var1array<T>類型。命令樣本如下。

    --返回c。
    select array('a','b','c')[2];
  • 樣本2:var1map<K, V>類型,命令樣本如下。

    --返回1。
    select str_to_map("test1=1,test2=2")["test1"];

相關函數

INDEX函數屬於複雜類型函數,更多對複雜類型資料(例如ARRAY、MAP、STRUCT、JSON資料)的處理函數請參見複雜類型函數