array_position() 是一个系统函数,它返回指定值在 数组 中首次出现的下标(位置)。可以可选地提供一个起始下标。
array_position() 在 PostgreSQL 9.5 中添加。
用法
array_position (anyarray,anyelement[,integer] ) →integer
提供的数组只能有一维。
要搜索值的所有出现位置,请使用 array_positions()。
变更历史
- PostgreSQL 9.5
- 添加于(提交 13dbc7a8)
示例
array_position() 的基本用法示例
postgres=# SELECT array_position(ARRAY[1,2,3], 2);
array_position
----------------
2
(1 row)
查找在给定下标处或之后首次出现的位置
postgres=# SELECT array_position(ARRAY['foo','bar','baz','boo','foo'], 'foo', 3);
array_position
----------------
5
(1 row)
可以搜索 NULL 值
postgres=# SELECT array_position(ARRAY[1,2,3,NULL,5], NULL);
array_position
----------------
4
(1 row)
尝试使用多维数组
postgres=# SELECT array_position(ARRAY[[1,2,3],[1,2,3]], 2); ERROR: searching for elements in multidimensional arrays is not supported
参考资料
- PostgreSQL documentation: 数组函数
