日期:2014-05-17  浏览次数:20795 次

求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