array_positions()

返回数组中某个值每次出现位置的函数

array_positions() 是一个系统函数,它返回指定值在 数组 中每次出现时的下标(位置)。可以另外提供一个起始下标。

array_positions() 添加于 PostgreSQL 9.5

用法

array_positions ( anyarray, anyelement ) → integer[]

提供的数组只能是单维的。

如果只想搜索某个值第一次出现的位置,请使用 array_position()

变更历史

示例

array_positions() 的基本用法示例

postgres=# SELECT array_positions(ARRAY[1,2,3,2,1], 1);
 array_positions 
-----------------
 {1,5}
(1 row)

可以搜索 NULL

postgres=# SELECT array_positions(ARRAY[1,2,NULL,2,NULL], NULL);
 array_positions 
-----------------
 {3,5}
(1 row)

尝试使用多维数组

postgres=# SELECT array_positions(ARRAY[⁣[1,2,3],[1,2,3]⁣], 2);
ERROR:  searching for elements in multidimensional arrays is not supported

分类

数组, 系统函数

另请参阅

array_position()

反馈

提交任何关于“array_positions()”的评论、建议或更正,请在此处 提交