【发布时间】:2021-02-01 14:30:28
【问题描述】:
我有一个 postgresql 数据库,其中包含一个 json 列,以及一些普通列。
json 列存储一个对象数组,如下所示:
[
{"status": "REGD", "register": "EYR", "start_date": "2008-09-01"},
{"status": "REGD", "register": "CCR", "start_date": "2008-09-01"},
{"status": "REGD", "register": "VCR", "start_date": "2008-09-01"}
]
我想在这个表上做一个SELECT 查询,分解数组,这样每个数组就是它自己的行,比如:
| status | register | start_date |
--------------------------------------
| "REGD" | "EYR" | "2008-09-01" |
| "REGD" | "CCR" | "2008-09-01" |
| "REGD" | "VCR" | "2008-09-01" |
我该怎么做?我已经尝试过运算符->> 和->,但我没有看到像这样解开数组的简单方法。
看起来一些 postgres 的 json functions 会有所帮助,但我正在努力将它们应用于这种情况。
mongodb 有一个unwind 操作。我想我正在寻找类似的东西(已编辑)
更新:我有一些使用 json_array_elements 的东西,但我仍在努力将每个键解压缩到自己的列中。
这不太行:
SELECT
jsonb_array_elements(registers) AS register
register->>'register' AS register_name
FROM items
【问题讨论】:
标签: sql json postgresql