ARRAY_POSITIONS
功能描述
ARRAY_POSITIONS函数用于返回在第一个参数给定的数组(数组必须为一维数组)中,第二个参数所有出现的位置的下标所组成的数组。如果指定的第二个参数为NULL,则返回NULL在数组中出现的位置,如果第二个参数在数组中不存在,则返回{}。
注意事项
该功能仅在数据库兼容模式为PostgreSQL时支持(即数据库初始化时指定DBCOMPATIBILITY='PG')。
语法格式
array_positions(anyarray, anyelement)
示例
示例1:直接调用ARRAY_POSITIONS函数,显示数组中'A'的位置。
SELECT array_positions(ARRAY['A','A','B','A'],'A');
结果放如下:
array_positions
-----------------
{1,2,4}
(1 row)
示例2:对表数据调用ARRAY_POSITIONS函数。
1、创建测试表并插入测试数据。
create table tb1_1157387(col1 int[],col2 int,col3 varchar);
insert into tb1_1157387 value('{0,1,2,3,4,5,6,4,4}',4,'aaa');
2、调用ARRAY_POSITIONS函数。
select array_positions(col1,col2) from tb1_1157387;
结果返回如下:
array_positions
-----------------
{5,8,9}
(1 row)