我在postgresql中有这个功能
CREATE OR REPLACE FUNCTION get_values(vals numeric[])
RETURNS void AS
$func$
DECLARE
BEGIN
RAISE NOTICE 'value: --%',vals[0];
RAISE NOTICE 'value: --%',vals[1];
RAISE NOTICE 'value: --%',vals[2];
END
$func$ LANGUAGE plpgsql;
奇怪的是,在调用此函数时,数组的索引从1开始而不是0
select get_values(ARRAY[1,2,3]);
OR
select get_values('{1,2,3}');
输出:
NOTICE: value: --<NULL>
NOTICE: value: --1
NOTICE: value: --2
get_values
------------
数组的索引从postgresql中的1开始?
答案 0 :(得分:1)
如果您阅读了章节&#34;访问数组&#34;在手册中,它就在那里:
默认情况下,PostgreSQL对数组使用基于1的编号约定,即n个元素的数组以array [1]开头,以array [n]
(强调我的)
取自: http://www.postgresql.org/docs/current/static/arrays.html#ARRAYS-ACCESSING