postgreSQL如何将多行从表转换为JSON数组

ize*_*god 2 sql postgresql json

ROW_TO_JSON postgres中的函数将表的一行转换为JSON对象.

select row_to_json(result) from (select * from employee) as result;
select row_to_json(result) from (select * from student) as result;
Run Code Online (Sandbox Code Playgroud)

给了我三行:

{"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}
Run Code Online (Sandbox Code Playgroud)

前两行来自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吗?

a_h*_*ame 7

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

您也不需要派生表:

select json_agg(row_to_json(employee)) 
from employee;
Run Code Online (Sandbox Code Playgroud)