gpt4 book ai didi

json - PostgreSQL单列表转JSON数组

转载 作者:行者123 更新时间:2023-11-29 11:48:57 27 4
gpt4 key购买 nike

我有这样的查询:

SELECT DISTINCT floor FROM rooms WHERE building_id = 23;

我想将结果转换为 JSON 数组。我能够按如下方式使用 json_agg():

SELECT json_agg(a) from (SELECT DISTINCT floor FROM rooms WHERE building_id = 23) as a;

但这会产生一个键/值对数组:

[{"floor":null},{"floor":1},{"floor":4},{"floor":2},{"floor":0},{"floor":3}]

当我真的想要一个只有值的数组时:

[null,1,4,2,0,3]

出于性能和带宽原因,我不想不必要地重复列名。关于如何制作仅包含值的 JSON 数组的任何想法?

(我还尝试了 array_to_json(array_agg()),但结果与 json_agg() 相同)

最佳答案

json_agg(a) 中的a 是表的别名。如果将其编码为 JSON,您将获得一个包含列名/列值对的字典。请改为引用列名称:

select  json_agg(floor)
from (
select distinct floor
from rooms
where building_id = 23
) a

或者更简单,使用 json_agg(distinct ...) 而不是子查询:

select  json_agg(distinct floor)
from rooms
where building_id = 23

关于json - PostgreSQL单列表转JSON数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54611407/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com