返回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数据)的处理函数请参见复杂类型函数。