使用 array_agg 或 array_string 时,数组在一定大小以上返回空。
SELECT array_agg(x.id) FROM (SELECT id FROM table LIMIT 500) x
- 这有效并返回一个数组。
但是这个查询:SELECT array_agg(x.id) FROM (SELECT id FROM table LIMIT 667) x
不起作用。它返回一个空数组。
我很确定这不会达到数组的限制大小。任何想法为什么会发生这种情况?
使用 array_agg 或 array_string 时,数组在一定大小以上返回空。
SELECT array_agg(x.id) FROM (SELECT id FROM table LIMIT 500) x
- 这有效并返回一个数组。
但是这个查询:SELECT array_agg(x.id) FROM (SELECT id FROM table LIMIT 667) x
不起作用。它返回一个空数组。
我很确定这不会达到数组的限制大小。任何想法为什么会发生这种情况?
这里的问题不是 Postgresql,而是我使用的客户端。
pgAdmin III
不显示超过一定大小的数组内容。大约 4.5k。使用时psql
不会遇到同样的问题。
的 UIpgAdmin
有一个设置“每列最大字符数”的选项,在我的情况下它设置为 256,这没有什么意义。但是您将看起来为空的数组复制并粘贴到记事本中,您会发现所有数据都在那里。