表t有如下记录:工单号    操作者
a1       张三
a1       王二 
a1       李四现在要得到查询结果:
工单号    操作者
a1       张三、王二、李四
SQL语句应该如何写?
谢谢先!

解决方案 »

  1.   

    select 工单号,
    操作者=stuff((select ','+操作者
            from table_name
           where 工单号=t.工单号
            for xml path('')),1,1,'')
    from table_name t
    group by 工单号
      

  2.   

    select 工单号,
    操作者=REPLACE(stuff((select ','+操作者
            from test1
           where 工单号=t.工单号
            for xml path('')),1,1,''),',','、') --楼主要求用逗号,稍加修改
    from test1 t
    group by 工单号
      

  3.   

    select 工单号,
    操作者=stuff((select '、'+操作者
            from test1
           where 工单号=t.工单号
            for xml path('')),1,1,'')
    from test1 t
    group by 工单号
      

  4.   

    帮助里好象是说for xml不能用子句中,是不是?
    xml附近有语法错误。
      

  5.   

    SQL stuff  用法:删除指定长度的字符,并在指定的起点处插入另一组字符。
    SQL SERVER FOR XML PATH用法.学习了!!
      

  6.   

    select 工单号,
    操作者=stuff((select ','+操作者
            from table_name
           where 工单号=t.工单号
            for xml path('')),1,1,'')
    from table_name t
    group by 工单号
      

  7.   

    字符串合并与拆分http://qianzhang.blog.51cto.com/317608/1204630
      

  8.   

    遗憾,我的目标数据库恰是SQL SERVER2000,只能用自定义函数了。谢谢各位!