gpt4 book ai didi

postgresql - 带有动态列名的 json_agg()

转载 作者:行者123 更新时间:2023-12-04 09:01:27 27 4
gpt4 key购买 nike

我正在尝试使用像这样的代码段从表中获取 JSON 格式的结果。

SELECT json_agg(json_build_object('latitude',my_table.latitude,
'longitude',my_table.longitude
)) from my_table;

结果:

[
{ "latitude": -24.719103042657146, "longitude": 16.97771468195161 }
]

不幸的是,列名的硬编码将不起作用,因为列名是动态的。在不知道列名究竟是什么的情况下,我不确定如何获得相同的结果。

我发现我可以通过这样做来获取列名,但除此之外我不太确定去哪里。

SELECT column_name 
from information_schema.columns
WHERE table_name = 'my_table';

是我的方法不对还是有更简单的方法?

最佳答案

您可以使用 to_jsonb 将完整的行转换为 JSON 值,这将使用列名作为 JSON 键:

select jsonb_agg(to_jsonb(t))
from (
select latitude, longitude
from my_table
) t

关于postgresql - 带有动态列名的 json_agg(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63549571/

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