如何在postgresql中使用数组的索引?

时间:2014-08-27 05:16:30

标签: arrays postgresql

我在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开始?

1 个答案:

答案 0 :(得分:1)

如果您阅读了章节&#34;访问数组&#34;在手册中,它就在那里:

  

默认情况下,PostgreSQL对数组使用基于1的编号约定,即n个元素的数组以array [1]开头,以array [n]

(强调我的)

取自: http://www.postgresql.org/docs/current/static/arrays.html#ARRAYS-ACCESSING