在 PostgreSQL 中从二维数组中获取数组

问题描述 投票:0回答:3

在 PostgreSQL 中,我有一个二维数组,例如:

SELECT ARRAY[ARRAY[1,2,3],ARRAY[4,5,6]];

在这个数组中,我想检索整个第一个

([1,2,3])
数组。 可悲的是:

SELECT (ARRAY[ARRAY[1,2,3],ARRAY[4,5,6]])[1];

不起作用,因为它返回 null。

可以吗?

sql arrays database postgresql multidimensional-array
3个回答
1
投票
create table test(id int, val int[][]);
insert into test values (1, ARRAY[[1,2,3],[4,5,6]]);
✓

1 行受影响
select id, val[1:1] from test;
id |瓦尔
-: | :--------
 1 | {{1,2,3}}
SELECT (ARRAY[[1,2,3],[4,5,6]])[1:1]
|数组|
| :-------- |
| {{1,2,3}} |

dbfiddle 这里


0
投票

好的,我解决了:

SELECT (ARRAY[[1,2,3],[4,5,6]])[1][1:3]

正是我想要的。


0
投票

您可以通过以下方式获得第一个一维(一维)数组。 *我的帖子详细解释了如何创建和使用 2D(二维)数组:

SELECT (ARRAY[ARRAY[1,2,3],ARRAY[4,5,6]])[1:1][:]; -- {{1,2,3}}
SELECT (ARRAY[ARRAY[1,2,3],ARRAY[4,5,6]])[1:1][1:3]; -- {{1,2,3}}
SELECT (ARRAY[ARRAY[1,2,3],ARRAY[4,5,6]])[1][:]; -- {{1,2,3}}
SELECT (ARRAY[ARRAY[1,2,3],ARRAY[4,5,6]])[1][1:3]; -- {{1,2,3}}
SELECT (ARRAY[ARRAY[1,2,3],ARRAY[4,5,6]])[1]; -- NULL
© www.soinside.com 2019 - 2024. All rights reserved.