PostgreSQL generate_subscripts() 函数使用指南

PostgreSQL generate_subscripts() 函数根据指定的数组和维度返回由数组下标组成的集合。

generate_subscripts() 语法

这里是 PostgreSQL generate_subscripts() 函数的语法:

generate_subscripts(arr array, dim integer[, reverse boolean]) -> setof integer

参数

arr
必需的。 它可以是一个任意类型的数组。
dim
必需的。 数组的维度。
reverse
可选的。 是否逆序。默认值为 false

返回值

PostgreSQL generate_subscripts() 函数返回指定的数组维度的下标的集合。

generate_subscripts() 实例

这里整理了一些 generate_subscripts() 函数的示例。

要返回数组 {3, 4, 5, 7} 的所有下标,请使用以下语句:

SELECT generate_subscripts('{3, 4, 5, 7}'::int[], 1);
 generate_subscripts
---------------------
                   1
                   2
                   3
                   4

要按照逆序返回数组 {3, 4, 5, 7} 的所有下标,请使用以下语句:

SELECT generate_subscripts('{3, 4, 5, 7}'::int[], 1, true);
 generate_subscripts
---------------------
                   4
                   3
                   2
                   1

要返回二维数组 {{3, 4, 5}, {7, 8, 9}} 中第一维数组的所有下标,请使用以下语句:

SELECT generate_subscripts('{{3, 4, 5}, {7, 8, 9}}'::int[][], 1);
 generate_subscripts
---------------------
                   1
                   2

要返回二维数组 {{3, 4, 5}, {7, 8, 9}} 中第二维数组的所有下标,请使用以下语句:

SELECT generate_subscripts('{{3, 4, 5}, {7, 8, 9}}'::int[][], 2);
 generate_subscripts
---------------------
                   1
                   2
                   3