2017-08-01 36 views
0

我需要一个SQL查询,我可以在其中选择所有json键。下面的查询让我获得JSON字段的所有关键字。但是我有点茫然,我会怎么做一个查询来获取所有的值。从postgres中的所有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

请出示您的架构结构和样品的输入/输出。或者最好是http://dbfiddle.uk演示。 – lad2025

+0

我做了一个更新,更好地阐明了结构。 – Jonathan

+0

[扁平化来自JSONB字段的聚合键/值对?](https://stackoverflow.com/a/35179515/1995738) – klin

回答

相关问题