![](/img/trans.png)
[英]How to extract values from array json column into multiple rows in Postgresql?
[英]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.