gpt4 book ai didi

postgresql - 在PostgreSQL中选择时如何将json数组中的所有键提取到列中

转载 作者:行者123 更新时间:2023-12-05 01:53:55 33 4
gpt4 key购买 nike

我正在使用 PostgreSQL 12.9 版

我有一个名为 EmployeeFamilyTable 并且 family 列是 jsonb 的类型

EmployeeFamily表如下:

<表类="s-表"><头>id名字姓氏家庭<正文>1A1B1[{"name":"C1","role":"Father"},{"name":"D1","role":"Mother"},{"name":"E1","角色":"兄弟"}]2A2B2[{"name":"C2","role":"Father"},{"name":"D2","role":"Mother"},{"name":"F2","角色":"姐姐"}]

现在我想要一个具有以下结果的查询:

<表类="s-表"><头>id名字姓氏姓氏角色<正文>1A1B1C1父亲2A1B1D1妈妈3A1B1E1哥4A2B2C2父亲5A2B2D2妈妈6A2B2F2姐姐

帮我用这个结果写查询!

谢谢大家

最佳答案

第一步,你应该知道这个数据库中的命名是小写的。
jsonb 以分解后的二进制形式存储数据;也就是说,不是作为 ASCII/UTF-8 字符串,而是作为二进制代码。
总结:

SELECT
e.ID,
e.first_name,
e.last_name,
j.MEMBER -> 'role' AS ROLE,
j.MEMBER -> 'name' AS NAME
FROM
employeefamily e
CROSS JOIN jsonb_array_elements (e.FAMILY) j(MEMBER)

关于postgresql - 在PostgreSQL中选择时如何将json数组中的所有键提取到列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70914675/

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