【问题标题】:Unnest elements from JSON array column来自 JSON 数组列的取消嵌套元素
【发布时间】:2016-02-11 21:52:31
【问题描述】:

我有一个 Postgres 表 test 像这样:

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

【问题讨论】:

    标签: arrays json postgresql set-returning-functions lateral-join


    【解决方案1】:

    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;
    

    db小提琴here

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-17
      • 2020-11-07
      • 2018-10-02
      相关资源
      最近更新 更多