我有一个这样的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
答案 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;
但是,您显示的是不 JSON数组,只是具有键/值对的JSON对象,并且在其上面具有非法语法。必须是所有双引号......