在 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。
可以吗?
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 这里
好的,我解决了:
SELECT (ARRAY[[1,2,3],[4,5,6]])[1][1:3]
正是我想要的。
您可以通过以下方式获得第一个一维(一维)数组。 *我的帖子详细解释了如何创建和使用 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