postgresql to_json()用法,将列转换为键值json

时间:2014-07-22 09:47:52

标签: json postgresql postgresql-9.3

我正在尝试在postgresql

中完成以下操作

我的表结构是

postgres=# select * from t_test;
 var1 | var2 | var3 
------+------+------
    1 | A    | v1
    1 | B    | v2
    2 | A    | u1

我希望输出按var1分组。 var2和var3必须成为json键值。像这样:

 var1 |  result
------+------------
    1 | { A: v1, B: v2 }
    2 | { A: u1 }

我无法从文档中清楚地理解to_json函数。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

他们说select to_json(table_name.*)可能有效

答案 1 :(得分:0)

在9.3(标记为)中进行字符串聚合:

select v1, format('{%s}',string_agg(format('"%s":"%s"',v2,v3), ','))::json
from t
group by v1
;
 v1 |       format        
----+---------------------
  1 | {"A":"v1","B":"v2"}
  2 | {"A":"u1"}