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

SQL Server如何将单列逗号分隔编码数据拆分为多行

解决方案

SQL Server 2017原生支持STRING_SPLIT函数,可直接拆分逗号分隔的字符串,结合编码-工时映射规则即可实现需求,修改后的查询代码如下:

SELECT 
    t.Employee_FullName,
    t.EmpID,
    TRIM(s.value) AS Code,
    -- 按业务规则匹配编码对应的工时值
    CASE TRIM(s.value)
        WHEN 'A' THEN t.[Regular Time]
        WHEN 'B' THEN t.[Double Time]
        WHEN 'C' THEN t.Overtime
        -- 多编码对应同一工时类型可在此添加分支,返回相同值即可
    END AS Hours
FROM myTable t
CROSS APPLY STRING_SPLIT(t.Code, ',') s
-- 可选:过滤工时为0的无效行
WHERE CASE TRIM(s.value)
        WHEN 'A' THEN t.[Regular Time]
        WHEN 'B' THEN t.[Double Time]
        WHEN 'C' THEN t.Overtime
    END > 0

逻辑说明

  • STRING_SPLIT(t.Code, ',')将原表中逗号分隔的Code字段拆分为独立行,每个编码对应单独一行
  • TRIM()处理拆分后编码前后的空格,兼容A,B、A, B等多种分隔格式
  • CASE语句可灵活配置编码与工时字段的映射关系,支持多编码对应同一工时的需求
  • 末尾WHERE条件可按需保留,用于过滤工时为0的无效数据

你提供的示例数据执行上述查询后,输出结果与你期望的格式完全一致。


内容的提问来源于stack exchange,提问作者Gabriella C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:54:04