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

PostgreSQL中如何将JSON格式字符串列拆分为多列?

PostgreSQL从JSON字符串字段提取属性为列的方法

不需要执行pivot操作——pivot是用来把行数据转成列(比如把多行分类统计结果合并到同一行的不同列),而你的需求是直接解析JSON字符串里的属性,转成同一行的新列,用PostgreSQL的JSON解析功能就能搞定。

假设你的表名为your_table,details是存储JSON字符串的文本列,直接用下面的SQL查询就能提取所需字段:

SELECT
  details::json->>'id' AS id,
  details::json->>'Time' AS "Time",
  details::json->>'Session' AS session,
  (details::json->>'teamPercentage')::int AS team_percentage
FROM your_table;

代码说明:

  • details::json:把文本类型的JSON字符串转为PostgreSQL原生的JSON类型,这样才能使用JSON解析函数
  • ->>:提取指定键对应的文本值,适合id、Time、Session这类字符串属性
  • 对于teamPercentage,提取后转成int类型,方便后续做数值计算或筛选

如果要把这些字段永久添加到表中(而不是临时查询),可以执行以下SQL:

-- 先添加新列
ALTER TABLE your_table
ADD COLUMN id text,
ADD COLUMN "Time" text,
ADD COLUMN session text,
ADD COLUMN team_percentage int;

-- 从JSON字符串中提取值更新到新列
UPDATE your_table
SET
  id = details::json->>'id',
  "Time" = details::json->>'Time',
  session = details::json->>'Session',
  team_percentage = (details::json->>'teamPercentage')::int;

内容的提问来源于stack exchange,提问作者analyst92

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:10:34