我正在尝试使用像这样的代码段从表中获取 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/