2017-05-15 777 views
0

ROW_TO_JSON postgres中的函数将表的一行转换为JSON对象。postgreSQL如何将表中的多行转换为JSON数组

select row_to_json(result) from (select * from employee) as result; 
select row_to_json(result) from (select * from student) as result; 

给了我三排:

{"salary":null,"age":65,"address":null,"id":111,"name":"NAME"} 
{"salary":null,"age":21,"address":null,"id":222,"name":"SURNAME"} 
{"dob":"1997-03-02","name":"Mediocore","passed":true,"id":555} 

的前两排是从employee表,而最后一排是从student表。

如果我想将整个结果集从一个表中放入一个JSON对象数组中? 例如。

[{"salary":null,"age":65,"address":null,"id":111,"name":"NAME"}, {"salary":null,"age":21,"address":null,"id":222,"name":"SURNAME"}]作为单行而不是两行分开。

有没有相当于TABLE_TO_JSON的东西?

+0

您运行的是什么版本.. –

+0

的PostgreSQL 9.6与pgAdmin的4 V4 – izengod

+0

啊,然后@a_horse_with_no_name给出最好的答案:) –

回答

2

也许我错过了一些东西,但看起来像json_agg应该这样做。

你也不需要派生表:

select json_agg(row_to_json(employee)) 
from employee; 
+0

row_to_json是第一JSON函数,你怎么知道OP不是9.2? –