我试图理解 PostgreSQLgenerate_subscripts
函数的第二个参数。该文档指出,第二个参数是应在其上生成下标的数组的维度:
generate_subscripts 是一个便利函数,它为给定数组的指定维度生成一组有效下标。
但是,对于我的二维示例数组,提供参数1
或2
两者都生成相同的输出。
WITH data AS (
select (array[['1','spam','3'], ['4','eggs','6'], ['7','ham','9']]) AS arr
)
SELECT arr[i][2] AS food
FROM data,
generate_subscripts((SELECT arr FROM data), 1) i;
和
WITH data AS (
select (array[['1','spam','3'], ['4','eggs','6'], ['7','ham','9']]) AS arr
)
SELECT arr[i][2] AS food
FROM data,
generate_subscripts((SELECT arr FROM data), 2) i;
(注1
与2
)都产生相同的输出:
food
------
spam
eggs
ham
(3 rows)
恐怕我不理解generate_subscripts
. 有更多经验的人可以澄清这个论点的作用吗?
我正在运行 PostgreSQL 9.1.6。