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

PostgreSQL如何拆分逗号分隔的列数据后插入另一张表

该需求完全可以在PostgreSQL中实现,仅需借助内置函数即可完成,无需额外插件。

实现步骤

步骤1:创建目标表(若Table2未提前创建)

CREATE TABLE Table2 (
    ID INT,
    Username VARCHAR(50)
);

步骤2:执行拆分插入操作

核心通过string_to_array将逗号分隔的字符串转为数组,再通过unnest将数组展开为多行,关联原表ID后直接插入目标表即可:

INSERT INTO Table2 (ID, Username)
SELECT 
    t1.ID,
    unnest(string_to_array(t1.Username, ',')) AS Username
FROM Table1 t1;

可选优化:处理字段前后多余空格

如果原始Username字段的逗号分隔值之间存在空格(例如格式为UserA, UserB, UserC),可以搭配trim函数去除多余空格,避免插入脏数据:

INSERT INTO Table2 (ID, Username)
SELECT 
    t1.ID,
    trim(unnest(string_to_array(t1.Username, ','))) AS Username
FROM Table1 t1;

结果验证

插入完成后执行以下查询,即可看到符合预期的拆分结果:

SELECT * FROM Table2;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:09:03