PostgreSQL对数组数组、列表列表或元组元组的查询

PostgreSQL对数组数组、列表列表或元组元组的查询,sql,postgresql,Sql,Postgresql,假设我有这张桌子 CREATE TABLE foo (id INTEGER, name TEXT); INSERT INTO foo VALUES (1,'adam',),(2,'eve') 我正在尝试将foo保存到一个表中,作为列表列表或类似的内容。 我知道我可以使用“SELECT json\u aggfoo”保存它,但我的查询返回太多数据,所以我不想在键列名上浪费空间 而不是: {{"id":1,"name":"adam"},{&

假设我有这张桌子

CREATE TABLE foo (id INTEGER, name TEXT);
INSERT INTO foo VALUES (1,'adam',),(2,'eve')
我正在尝试将foo保存到一个表中,作为列表列表或类似的内容。 我知道我可以使用“SELECT json\u aggfoo”保存它,但我的查询返回太多数据,所以我不想在键列名上浪费空间 而不是:

{{"id":1,"name":"adam"},{"id":2,"name":"Eve"}}
我想以一种优雅的方式回答我的问题

[[1,"adam"],[2,"eve"]]

另外,我需要一种优雅的方式将这些数据作为表查询回来。我知道列的名称,所以我不需要json_agg返回的键。在Postgres中,数组可以包含记录。因此,您可以简单地使用:

select array_agg(foo)
from foo;

是一个DBFIDLE。

可以将您的id转换为文本吗?不能创建具有多种数据类型的数组:从foo中选择array\u aggARRAY[id::TEXT,name];我不想硬编码列名,因为我正在构建一个函数。。。但这与从foo中选择array_aggfoo是一样的;正如戈登在下面所说。现在的问题是。。。如何从这个数组返回到表中?假设我知道这个专栏的名字,非常感谢!现在的问题是。。。如何从这个数组返回到表中?假设我知道这个专栏names@Nicol阿拉斯里维拉。我不理解你的评论,除非你指的是unnest。2这回答了您在此处提出的问题,新问题应作为新问题提出。