从Postgres中的JSON数组中选择

时间:2014-11-05 21:39:38

标签: json postgresql

在Postgres有没有办法做到这一点?

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

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

编辑,无需创建表格。

2 个答案:

答案 0 :(得分:3)

当然,功能是json_populate_recordset。假设有一个由{/ p>定义的表test

CREATE TABLE test(
  col1 int,
  col2 text
);

你可以简单地说:

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

答案 1 :(得分: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)