繁体   English   中英

从Postgres中的所有JSON字段获取值

[英]Getting values from all JSON fields in postgres

我需要一个SQL查询,在这里我可以选择所有json键。 下面的查询让我获取JSON字段的所有键。 但是我有点茫然如何进行查询以也获取所有值。

SELECT DISTINCT ON (key.*) key.*
FROM my_table,
jsonb_object_keys(my_table.json_field) as key

因此,上述查询的结果将仅仅是

key1 
key2

使用以下查询,您将获得与此类似的结果

SELECT * FROM my_table

| id | json_field |
| -- | ---------- |
| 1  | '{"key1": "value1"}' |
| 2  | '{"key2": "value2"}' |

我正在寻找的结果如下

| id | key1   | key2   |
| -- | -------| ------ | 
| 1  | value1 | null   |
| 2  | null   | value2 |

造成困难的是,我不知道所有键的名称,这些键也可能是一行中的很多键。

select distinct on (field_1, field_2) id, job_id, field_1, field_2
from
    my_table,
    jsonb_populate_recordset(json_field) jprs (field_1 int, field2 text)

https://www.postgresql.org/docs/current/static/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM