我在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";
我做错了什么?
答案 0 :(得分:1)
您需要使用双引号转义类型名称以考虑区分大小写。我还删除了长度限制that doesn't need to be set in PostgreSQL:
CREATE type json_type AS ("PracName" varchar, "Email" varchar);