0

我的视图中有这段代码:

SELECT json_object_agg(code,value) FROM table1

它在我的 postgREST api 中生成:

[{"json_object_agg":"{code1: value1, code2: value2, ...}"]

我想删除json_object_agg它,使它像这样:

[{code1: value1, code2: value2, ...}]

我怎么做?

4

1 回答 1

0

您不能有空的结果集名称。我认为这与您之前的问题有关

t=# select json_object_agg(code,value) from tt;
                  json_object_agg
----------------------------------------------------
 { "ALLOW_MAC_ADDR" : "1", "USER_ALIAS" : "James" }

因此,如果您尝试使用空值命名列(我可以从您的帖子要求中想到最接近的),您会收到错误消息:

t=# select json_object_agg(code,value) "" from tt;
ERROR:  zero-length delimited identifier at or near """"
LINE 1: select json_object_agg(code,value) "" from tt;
                                       ^

当然,您可以使用空格字符对其进行 mokey 破解,例如:

t=# select json_object_agg(code,value) " " from tt;

----------------------------------------------------
 { "ALLOW_MAC_ADDR" : "1", "USER_ALIAS" : "James" }

这几乎没有名字,但我假设你必须修改你的“postgREST api”才能正确地做到这一点 - 忽略结果集属性名称

于 2017-09-15T07:20:09.177 回答