2016-04-26 178 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