我有多列要聚合到一个新列中。我想将它们连接在一个数组中,并在它们之间使用","分隔符。你能告诉我写查询的一些进展吗?我的例子我想工作简单快捷:
SELECT array_agg('[' || us.name || ',' || us.age || ',' || us.gender || ']')
FROM users as us;
如果要创建JSON数组,请使用JSON函数:
select jsonb_agg(concat_ws(',', us.name, us.age, us.gender))
from users as us;
如果您想要真正的JSON对象(使用键/值对(,而不是数组中逗号分隔的字符串:
select jsonb_agg(to_jsonb(u))
from (
select name, age, gender
from users
) u
另一种选择是创建嵌套数组:
select jsonb_agg(to_jsonb(array[name, age, gender]))
from users