2014-11-05 148 views
1

Postgres中有這種方法嗎?從Postgres中的JSON數組中選擇

SELECT * FROM magic_json_function('[{"col1": 1, "col2": "A"}, {"col1": 2, "col2": "B"}]') 

col1 | col2 
------+------ 
1 | A 
2 | B 
(2 rows) 

編輯:,而無需創建一個表。

回答

2

這是我最後只是:

SELECT value->>'col1' AS col1, value->>'col2' AS col2 
FROM json_array_elements('[{"col1": 1, "col2": "A"}, {"col1": 2, "col2": "B"}]') 

col1 | col2 
------+------ 
1 | A 
2 | B 
(2 rows) 
+0

不錯的一個。永遠不會想到它;) – 2014-11-05 22:37:56

3

當然,功能json_populate_recordset。假設有通過

CREATE TABLE test(
    col1 int, 
    col2 text 
); 

定義的表test你可以簡單:

SELECT * FROM json_populate_recordset(NULL::test,'[{"col1": 1, "col2": "A"}, {"col1": 2, "col2": "B"}]') 
+0

而不是'CREATE TABLE',你也可以使用'CREATE TYPE' – 2014-11-06 10:24:30