领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

多个字段值合并到一个字段值编程(把多个字符串合并)

nixiaole 2025-07-21 16:57:56 知识剖析 5 ℃

SELECT 产品编号,[去毛刺(S)],[拉丝(S)],[抛光(S)],车间 from 一车间T ;

sqlserver,sql 优化上面的sql,新增工序字段, 将 [去毛刺(S)],[拉丝(S)],[抛光(S)] 这三个字段值放到 工序字段列里面

可以使用SQL Server的UNPIVOT操作将列转换为行,并新增工序字段。优化后的SQL如下:

SELECT

产品编号,

车间,

工序 = REPLACE(REPLACE(工序, '(S)', ''), '(S)', ''), -- 移除括号及内容

工序耗时

FROM 一车间T

UNPIVOT (

工序耗时 FOR 工序 IN (

[去毛刺(S)],

[拉丝(S)],

[抛光(S)]

)

) AS unpvt


优化点说明:

1. 使用UNPIVOT实现列转行,将三个工序列合并到"工序"字段

2. 通过双重REPLACE函数统一处理中文/英文括号,输出更干净的工序名称

3. 保持原有产品编号和车间字段,新增工序耗时字段

4. 比JOIN方案更高效,仅需一次表扫描

注:如果不需要清理括号内容,可简化为 `工序` 直接使用原始列名

最近发表
标签列表