2016-04-26 275 views
0

我有一个Postgres数据库,在下面的格式保存数据的JSON列(名为pracInfo):查询Postgres的SQL JSON表

[{"ApplicationId":["123455667"],"Domain":["WORKGROUP"],"PracName":["ABC Corp cc"],"Phone":["011 123 4567"],"EMail":["[email protected]"],"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"; 

我在做什么错?

回答

1

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

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

谢谢!找出在PostgreSQL中玩的SQL Server开发者:) – Madeleine