我有这个包含app& amp;的设置的表。我只是想在视图中显示它。每个设置的数据都存储为一行。
Code (varchar64)| Value (varchar1000)
----------------------
ALLOW_MAC_ADDR | 1
----------------------
ALLOW_SAVE | 1
----------------------
USER_ALIAS | James
现在这是一个复杂的地方,我必须在视图中将这些行转换为jsonb
。 value
列名称的关键字必须基于Code
列数据的值。
以下是首选jsonb的示例:
[dt:{ALLOW_MAC_ADDR: 1, ALLOW_SAVE: 1, USER_ALIAS: 'James'}]
我想在我看来做这样的事情:
SELECT .. FROM generate_jsonb()
那么如何实现这样的jsonb?
编辑:如果有帮助,我正在使用v9.6。
答案 0 :(得分:1)
https://www.postgresql.org/docs/current/static/functions-json.html
聚合函数json_object_agg,它聚合了一对值 进入JSON对象
例如:
t=# create table tt(code text, value text);
CREATE TABLE
t=# insert into tt values('ALLOW_MAC_ADDR',1),('USER_ALIAS','James');
INSERT 0 2
t=# select json_object_agg(code,value) from tt;
json_object_agg
----------------------------------------------------
{ "ALLOW_MAC_ADDR" : "1", "USER_ALIAS" : "James" }
(1 row)