postgresql agg函数返回一个带有单引号的数组

时间:2018-02-08 19:26:38

标签: sql json postgresql

我有这个非常简单的查询,它返回一个市政标识符数组,用逗号分隔它们并在每个项目周围加上双引号。我希望能够用单引号

包围这些双引号
select json_agg(ssn) from sde.muns

enter image description here

1 个答案:

答案 0 :(得分:0)

假设你有:

t=# with c(v) as (select * from generate_series(1020,1029))
select json_agg(v::text) from c;
                                     json_agg
----------------------------------------------------------------------------------
 ["1020", "1021", "1022", "1023", "1024", "1025", "1026", "1027", "1028", "1029"]
(1 row)

所以你可以:

t=# with c(v) as (select * from generate_series(1020,1029))
select translate(json_agg(v::text)::text,'"',$$'$$) from c;
                                    translate
----------------------------------------------------------------------------------
 ['1020', '1021', '1022', '1023', '1024', '1025', '1026', '1027', '1028', '1029']
(1 row)

当然不再有效的json了。而且我认为你只能拥有数字,所以没有意外的双引号来照顾