计算元素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数组a或element为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);