全部产品
Search
文档中心

云原生大数据计算服务 MaxCompute:INDEX

更新时间:Jun 15, 2023

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