簡體   English   中英

postgreSQL如何將多行從表轉換為JSON數組

[英]postgreSQL how to convert multiple rows from a table to an array of JSON

postgres中的ROW_TO_JSON函數將表的一行轉換為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東西?

也許我錯過了一些東西,但這看起來像json_agg應該這樣做。

您也不需要派生表:

select json_agg(row_to_json(employee)) 
from employee;

您也可以使用這些方法

在postgres 9.2 SELECT array_to_json(array_agg(result))from(select * from employee)result

在Postgres 9.3及以上

SELECT json_agg(result) FROM (select * from employee)result


SELECT to_jsonb(array_agg(result)) FROM (select * from employee)result


SELECT json_agg(result)::jsonb FROM (select * from employee)result

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM