gpt4 book ai didi

postgresql - 在 postgres 中展平 JSONB 数组

转载 作者:行者123 更新时间:2023-11-29 13:24:09 31 4
gpt4 key购买 nike

我正在使用 Postgres 9.4 并将我的数据存储为 JSONB 数组。我正在寻找一种方法来提取数组中的 json 元素,并使用 psql 将它们替换为一个串联的 json 元素。以下表为例:

'aaa' | [{"a":"foo"},{"b":"bar"},{"c":["baz", 'boom']}]  | 404
'bbb' | [{"bar":"foo"}] | 501

我希望实现的是:

'aaa' | {"a":"foo", "b":"bar", "c":["baz", "boom"]}     | 404
'bbb' | {"bar":"foo"} | 501

我尝试使用 json 类型的内置 postgres 函数来实现它。但我只是想出了如何在确切位置提取元素。提前致谢。

最佳答案

SELECT  id, jo.obj
FROM mytable
CROSS JOIN
LATERAL
(
SELECT JSON_OBJECT_AGG(jt.key, jt.value) obj
FROM JSONB_ARRAY_ELEMENTS(data) je
CROSS JOIN
LATERAL JSONB_EACH(je.value) jt
) jo

关于postgresql - 在 postgres 中展平 JSONB 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36704489/

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