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

SQL Server 2014如何按列分隔值拆分现有数据生成新行

SQL Server 2014 按分隔标识拆分行实现方案

核心逻辑

当前测试表为固定3组值的平铺结构,通过SEPERATOR_A、SEPERATOR_B字段的^标记判断是否需要生成对应分组的行,无需依赖高版本才支持的STRING_SPLIT函数,直接用UNION ALL按规则拼接各组数据即可,完全兼容SQL Server 2014,执行效率最优。
拆分规则:

  • 所有记录默认返回第一组字段(CODE/M_U/M_C)作为基础行
  • 当SEPERATOR_A值为^时,提取第二组字段(CODE1/M1_U/M1_C)生成新行
  • 当SEPERATOR_B值为^时,提取第三组字段(CODE2/M2_U/M2_C)生成新行

实现代码

SELECT ID, CODE, M_U, M_C
FROM #test
UNION ALL
SELECT ID, CODE1, M1_U, M1_C
FROM #test
WHERE SEPERATOR_A = '^'
UNION ALL
SELECT ID, CODE2, M2_U, M2_C
FROM #test
WHERE SEPERATOR_B = '^'
ORDER BY ID;

执行结果

针对提供的3条样例数据,执行后返回6行结果,完全匹配预期拆分效果:

IDCODEM_UM_C
1231ABCXYZ
456G4762D01398
456G4765E043NULL
893H7832U73R12
893H9833NULLF82
893H563U83NULL

若后续遇到单字段存储多段分隔值、分组数量不固定的场景,可提前构建0-1000的连续数字辅助表,结合SUBSTRING、CHARINDEX函数实现通用拆分逻辑,无需升级SQL Server版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:48:25