You need to enable JavaScript to run this app. Oracle SQL如何仅用SELECT语句将逗号分隔字符串拆分至多列
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL如何仅用SELECT语句将逗号分隔字符串拆分至多列

Oracle逗号分隔字段拆列解法

直接使用Oracle内置正则拆分函数即可实现纯SELECT拆列,无需新建表,语句如下:

SELECT 
    agentname AS AGENT,
    TRIM(REGEXP_SUBSTR(categories, '[^,]+', 1, 1)) AS CATA,
    TRIM(REGEXP_SUBSTR(categories, '[^,]+', 1, 2)) AS CATB,
    TRIM(REGEXP_SUBSTR(categories, '[^,]+', 1, 3)) AS CATC,
    TRIM(REGEXP_SUBSTR(categories, '[^,]+', 1, 4)) AS CATD,
    -- 若需支持更多分隔值,按下方格式新增列即可,第四个参数为拆分后取值的位置
    TRIM(REGEXP_SUBSTR(categories, '[^,]+', 1, 5)) AS CATE
FROM commasplit;

逻辑说明

  • REGEXP_SUBSTR第三个参数为匹配起始位置,固定填1即可,第四个参数指定取拆分后的第几个值
  • 外层TRIM用于清理分隔值前后的多余空格,适配样例中逗号后带空格的场景
  • 超出字段实际拆分数量的列会自动返回NULL,符合预期结果要求

执行上述语句即可得到目标输出,若后续确认分隔值上限高于5,按规则新增对应列即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 18:42:03