我有一个名为 start 的整数类型列。我想通过该列的值创建一个数组。这似乎很简单,我使用了 array_agg(),但它给出了空数组作为输出。以下是我的列数据
start
1
2
11
5
.
.
. (and so on)
以下是我用来制作数组的查询:
select array_agg(start) as start_array from table1;
为什么它给出空数组?
我有一个名为 start 的整数类型列。我想通过该列的值创建一个数组。这似乎很简单,我使用了 array_agg(),但它给出了空数组作为输出。以下是我的列数据
start
1
2
11
5
.
.
. (and so on)
以下是我用来制作数组的查询:
select array_agg(start) as start_array from table1;
为什么它给出空数组?
除非没有行,否则无法返回空。也许 JOIN 或 WHERE 子句是错误的,并且您有 0 行?
如果您的查询如此简单,也可以作为微优化,
select array_agg(start) as start_array from table1;
那么用构造函数编写可能会更好ARRAY()
......
SELECT ARRAY(SELECT start FROM table1) AS start_array;