0

我有一个test像这样的 Postgres 表:

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

如何获得以下输出?

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

1 回答 1

3

json_each_text()在连接中使用LATERAL

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

db<>在这里摆弄

但是,您显示的不是JSON 数组,只是一个带有键/值对的 JSON 对象,并且上面带有非法语法。必须都是双引号...

于 2015-11-10T21:43:10.833 回答