【问题标题】:Postgres expand JSON with unkown keysPostgres 使用未知键扩展 JSON
【发布时间】:2020-09-29 01:16:55
【问题描述】:

我想在我的表中展开一个特定的行,该行有一个具有以下结构的 json 列:

 id|column1      |
---|-------------|
id1|{nested json}|
id2|{nested json}|

嵌套JSON的结构如下:

{"random_key_1":{"
               known_key_1":"value",
               "known_key_2":"value"
              },
"random_key_2":{"
               known_key_1":"value",
               "known_key_2":"value"
              },
...

我想将一行展开成以下格式:

my_column_name |known_key_1 |known_key2|
---------------|-----------|----------|
random_key_1   |  value    |  values  |
random_key_2   |  value    |  values  |

【问题讨论】:

标签: sql json postgresql


【解决方案1】:

您可以使用内置的json_each 方法将最外层的 JSON 扩展为行,而无需知道键是什么。从那时起,您可以直接构建已知列。

SELECT col1.key AS my_column_name, 
       col1.value->>'known_key_1' AS known_key_1, 
       col1.value->>'known_key_2' AS known_key_2 
FROM main_table, json_each(column1) col1;

 my_column_name | known_key_1 | known_key_2
----------------+-------------+-------------
 random_key_1   | value1      | value2
 random_key_2   | value3      | value4

【讨论】:

    猜你喜欢
    • 2021-04-08
    • 2023-01-31
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多