You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PostgreSQL中随机JSONB转换为键值(KV)表

PostgreSQL 无嵌套JSON字段转键值合并表实现方法

需求说明

现有包含无嵌套JSON字段的PostgreSQL表,需将JSON的键值对拆分,相同键的对应值合并为带引号的逗号分隔字符串,输出目标键值表。

实现SQL语句

假设原表名为your_table,JSON字段名为data,执行以下SQL即可得到目标结果:

SELECT
    key,
    string_agg('''' || value || '''', ', ') AS value
FROM
    your_table,
    json_each_text(data)
GROUP BY
    key
ORDER BY
    key;

代码解析

  • json_each_text(data):将每个JSON对象展开为(key, value)格式的行记录,因JSON无嵌套,直接提取所有顶层键值对即可。
  • GROUP BY key:按键分组,确保相同键的所有值被聚合到同一行。
  • string_agg('''' || value || '''', ', '):将每个值用单引号包裹,再通过逗号分隔拼接成字符串,与目标格式完全匹配;若需保留数组类型,可替换为array_agg(value)。

结果验证

针对示例输入数据,执行后将输出:

keyvalue
test'baa-1496', 'baa-1452'
test2'baa-1431'
test3'baa-1497'
test4'baa-1597'

内容的提问来源于stack exchange,提问作者Дима Шестаев

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 14:14:55