Postgresql
多行進入json
看起來我的問題很不尋常,因為我根本沒有找到答案。讓我們想像一下,我有
A
帶有列的表:language
和uri
.語言 | 你是 ---------|----------------- 汝 | 一些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
會給你預期的結果。