Postgresql

多行進入json

  • April 28, 2021

看起來我的問題很不尋常,因為我根本沒有找到答案。讓我們想像一下,我有A帶有列的表:languageuri.

語言 | 你是 
---------|-----------------
汝 | 一些uri 
zh | 另一個uri
...

我的問題是:如何返回 JSON 對象而不是多行。例如:

{ "ru": "some-uri", "en": "some-another-uri", ... }

還有另一種不需要類型轉換的方法:json_object_agg(name, value)

test=# create table t (name text, value int);
CREATE TABLE
test=# insert into t values ('key1', 1), ('key2', 2), ('key3', 3);
INSERT 0 3
test=# select * from t;
name | value
------+-------
key1 |     1
key2 |     2
key3 |     3
(3 rows)

test=# select json_object_agg(name, value) from t;
           json_object_agg
----------------------------------------
{ "key1" : 1, "key2" : 2, "key3" : 3 }
(1 row)

所以,我在文件中找到了很遠的答案。

SELECT json_object(array_agg(language), array_agg(uri)) FROM A會給你預期的結果。

引用自:https://dba.stackexchange.com/questions/205973