我需要一个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 |
难以理解的是,我不知道所有键的名称,这些键也可能是单行的许多键。
答案 0 :(得分:0)
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