从postgres中的json数组中选择所有元素

时间:2015-11-10 21:19:34

标签: arrays json postgresql

我有一个这样的postgres表

table test:
id | data
0  | {'0':'a','1':'b','2':'c'}
1  | {'0':'d','1':'e' }
2  | {'0':'f','1':'g','2':'h','3':'i'}

我需要一个select语句,它给出了以下输出:

id | data
0  | a
0  | b
0  | c
1  | d
1  | e
2  | f
2  | g
2  | h
2  | i

1 个答案:

答案 0 :(得分:2)

LATERAL加入中使用json_each_text()

SELECT t.id, d.data
FROM   test t, json_each_text(t.data) d(key, data)
ORDER  BY t.id, d.key;

SQL Fiddle.

但是,您显示的是 JSON数组,只是具有键/值对的JSON对象,并且在其上面具有非法语法。必须是所有双引号......