【问题标题】:Transform JSON rows into PostgreSQL Table将 JSON 行转换为 PostgreSQL 表
【发布时间】:2021-02-26 16:54:50
【问题描述】:

我的数据库中有一个表,它返回了一些列。其中之一是 JSON 列表,实际上是其他表,但采用 JSON 格式。下图显示了一个示例。

我想将该列“数据”的每一行转换为单独的表,因为我需要每个 JSON 中的特定信息。我怎样才能只使用 PostgreSQL 来做到这一点?

【问题讨论】:

    标签: sql json postgresql


    【解决方案1】:

    您可以使用以下查询创建将您的数据(json 数据列)传输到新表中

    insert into json_table
    SELECT p.*
    from test_json t
    cross join lateral json_populate_record (NULL::json_table, t.data ::json) as p;
    

    这里 json_table 是新的表,数据将存储在其中,test_json 是您的表,其中 json 数据存储在 data 列中. 用你的表名替换那些,你就可以开始了。

    【讨论】:

    • 我运行该代码,它用与原始表相同的行数填充 json_table,但 json_table 中填充的数据全部为空。有什么办法解决这个问题?
    • 您能否将您的表格中的一些样本数据发送至 kmnur@hotmail.com。这样我就可以自己检查了。
    • @LeoOmni 请检查表格的列名。这些应该与 json oibject 的列名相同。否则,这将插入 null,因为 json 对象中的这些列名没有可用的值。
    • @LeoOmni 请让我知道您的问题是否已解决。
    • 我可以成功解决这个问题。现在我将我的 JSON 行转换为数据库中的另一个表,尽管有一些重复的行(可以通过简单的 SQL 查询解决),但该表正是我所需要的。
    猜你喜欢
    • 1970-01-01
    • 2018-04-06
    • 2020-08-25
    • 2022-07-07
    • 1970-01-01
    • 2021-02-10
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多