返回MAP型別參數中滿足指定條件的Value。
注意事項
如果var1是
array<T>
類型,擷取var1的第var2個元素。ARRAY數組元素編號自左往右,從0開始計數。如果var1是
map<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>
中的K
、V
指代MAP對象的Key、Value。var2:必填。
如果var1是
array<T>
類型,則var2為BIGINT類型且大於等於0。如果var1是
map<K, V>
類型,則var2與K的類型保持一致。
傳回值說明
如果var1是
array<T>
類型,函數返回T類型。返回規則如下:如果var2超出var1的元素數目範圍,返回結果為NULL。
如果var1為NULL,返回結果為NULL。
如果var1是
map<K, V>
類型,函數返回V類型。返回規則如下:如果
map<K, V>
中不存在Key為var2的情況,返回結果為NULL。如果var1為NULL,返回結果為NULL。
使用樣本
樣本1:var1為
array<T>
類型。命令樣本如下。--返回c。 select array('a','b','c')[2];
樣本2:var1為
map<K, V>
類型,命令樣本如下。--返回1。 select str_to_map("test1=1,test2=2")["test1"];
相關函數
INDEX函數屬於複雜類型函數,更多對複雜類型資料(例如ARRAY、MAP、STRUCT、JSON資料)的處理函數請參見複雜類型函數。