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

Oracle SQL:将序列号From与To字段转换为单行格式的需求

Oracle SQL 序列号拆分展示方案

需求描述

  • 输入:表中某字段存储逗号分隔的多个序列号(例:SN001,SN002,SN003)
  • 输出:将每个序列号拆分为独立行,与原记录的其他字段一一对应展示

实现SQL

假设数据表名为third_party_serial,包含字段record_id(记录唯一标识)、serial_str(逗号分隔的序列号串),执行以下SQL即可实现格式转换:

SELECT
    record_id,
    TRIM(REGEXP_SUBSTR(serial_str, '[^,]+', 1, LEVEL)) AS single_serial
FROM
    third_party_serial
CONNECT BY
    LEVEL <= REGEXP_COUNT(serial_str, '[^,]+')
    AND PRIOR record_id = record_id
    AND PRIOR SYS_GUID() IS NOT NULL;

代码解释

  • REGEXP_SUBSTR(serial_str, '[^,]+', 1, LEVEL):按逗号切割字符串,提取第LEVEL个序列号
  • TRIM():清除序列号前后可能存在的空格
  • REGEXP_COUNT(serial_str, '[^,]+'):统计当前记录中的序列号总数,控制拆分的行数
  • PRIOR record_id = record_id:限定只在当前记录内拆分,避免跨记录关联
  • PRIOR SYS_GUID() IS NOT NULL:防止出现重复行,适配Oracle 11g及以上版本

注意事项

如果表中没有唯一标识字段record_id,请替换为表的主键或其他能唯一区分每条记录的字段,确保拆分逻辑准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 22:57:20