PostgreSQL - 从带有位置的数组中提取值

Geo*_*yro 3 postgresql

我想从 PostgreSQL 中具有索引位置的数值数组中提取一个值。

我的数组就像{0.10,0.20,0.30},类型是numeric[],数组位置是integer计算的array_position。语法将是SELECT myarray[array_position];,但是当我尝试时(例如):

SELECT'{0.10,0.20,0.30}'::numeric[][1];
Run Code Online (Sandbox Code Playgroud)

它返回了我整个数组。

如何从 PostgreSQL 中具有索引位置的数组中提取值?

Abe*_*sto 6

在您的示例中[1]是数组定义的部分:https://www.postgresql.org/docs/current/arrays.html#ARRAYS-DECLARATION

然而,当前的实现忽略任何提供的数组大小限制,即行为与未指定长度的数组相同。

使用括号分隔定义和引用:

SELECT ('{0.10,0.20,0.30}'::numeric[])[1];
Run Code Online (Sandbox Code Playgroud)