计算元素element在ARRAY数组a中第一次出现的位置。ARRAY数组元素位置编号自左往右,从1开始计数。

命令格式

bigint array_position(array<T> <a>, T <element>) 

参数说明

  • a:必填。ARRAY数组。array<T>中的T指代ARRAY数组元素的数据类型。支持的数据类型如下:
    • TINYINT、SMALLINT、INT、BIGINT
    • FLOAT、DOUBLE
    • BOOLEAN
    • DECIMAL、DECIMALVAL
    • DATE、DATETIME、TIMESTAMP、IntervalDayTime、IntervalYearMonth
    • STRING、BINARY、VARCHAR、CHAR
    • ARRAY、STRUCT、MAP
  • element:必填。待查询的元素,数据类型必须与a中元素的数据类型相同。

返回值说明

返回BIGINT类型。返回规则如下:
  • 如果ARRAY数组aelement为NULL,返回NULL。
  • 未找到元素时返回0。

使用示例

  • 示例1:计算元素1第一次出现在ARRAY数组array(3, 2, 1)中的位置。命令示例如下。
    --返回3。
    select array_position(array(3, 2, 1), 1);
  • 示例2:element为NULL。命令示例如下。
    --返回NULL。
    select array_position(array(3, 1, null), null);