Skip to content

PostgreSQL generate_subscripts() 函数 ​

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

generate_subscripts() 语法 ​

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

sql
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} 的所有下标,请使用以下语句:

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

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

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

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

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

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

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