【问题标题】:Querying postgres SQL JSON table查询 postgres SQL JSON 表
【发布时间】:2023-03-16 14:00:01
【问题描述】:

我在 postgres 数据库中有一个 JSON 列(名为 pracInfo),其中包含以下格式的数据:

[{"ApplicationId":["123455667"],"Domain":["WORKGROUP"],"PracName":["ABC Corp cc"],"Phone":["011 123 4567"],"EMail":["abc@abc.co.za"],"SQLversion":["Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) \n\tNov 24 2008 13:01:59 \n\tCopyright (c) 1988-2005 Microsoft Corporation\n\tExpress Edition on Windows NT 6.1 (Build 7601: Service Pack 1)\n"],"ABCversion":["0000"],"ABCDBversion":["2.604"],"ABCDDBversion":["1.0.3"]}]

我想提取一个拆分 JSON 属性的查询,例如ApplicationId、Domain、PracName 等作为不同的列。如果该列在数组中有两个对象,我希望将其拆分为两行。

我尝试了各种查询格式,但结果总是返回空白,例如 json_populate_recordset 例如

CREATE type json_type AS (PracName varchar(100),Email Varchar(100));

SELECT id, (json_populate_recordset(null::json_type, "pracInfo")).* FROM public."PracInfos";

我做错了什么?

【问题讨论】:

    标签: json postgresql


    【解决方案1】:

    您需要使用双引号对类型名称进行转义以区分大小写。我还删除了长度限制that doesn't need to be set in PostgreSQL

    CREATE type json_type AS ("PracName" varchar, "Email" varchar);
    

    【讨论】:

    • 谢谢!发现 SQL Server 开发人员在玩 postgreSQL :)
    猜你喜欢
    • 1970-01-01
    • 2015-08-11
    • 2014-09-23
    • 2018-04-13
    • 2020-08-13
    • 1970-01-01
    • 2015-07-17
    • 2017-06-01
    相关资源
    最近更新 更多