求SQL语句:将多条记录的值合并到一条记录
表t有如下记录:
工单号 操作者
a1 张三
a1 王二
a1 李四
现在要得到查询结果:
工单号 操作者
a1 张三、王二、李四
SQL语句应该如何写?
谢谢先!
------解决方案--------------------select 工单号,
操作者=stuff((select ','+操作者
from table_name
where 工单号=t.工单号
for xml path('')),1,1,'')
from table_name t
group by 工单号
------解决方案--------------------select 工单号,
操作者=REPLACE(stuff((select ','+操作者
from test1
where 工单号=t.工单号
for xml path('')),1,1,''),',','、') --楼主要求用逗号,稍加修改
from test1 t
group by 工单号
------解决方案--------------------如果是2000库就需要自定义函数
------解决方案--------------------SQL stuff 用法:删除指定长度的字符,并在指定的起点处插入另一组字符。
SQL SERVER FOR XML PATH用法.学习了!!
------解决方案--------------------select 工单号,
操作者=stuff((select ','+操作者
from table_name
where 工单号=t.工单号
for xml path('')),1,1,'')
from table_name t
group by 工单号
------解决方案--------------------字符串合并与拆分
http://qianzhang.blog.51cto.com/317608/1204630