微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Sqlserver 中如何通过group by 实现分组合并

--------------------第一步:新建表:Test----------------------------

CREATE TABLE test(id varchar(50),[values] varchar(10))

INSERT test SELECT '001','aa'

UNION ALL SELECT '001','bb'

UNION ALL SELECT '002','aaa'

ottom:0.5em; font-family:Arial,'bbb'

ottom:0.5em; font-family:Arial,'ccc';

 

具体实现的方法

方法

SELECT id,

       [values] =

       stuff(b.[values].value('/R[1]','nvarchar(max)'),宋体; font-size:14px; line-height:25px">              1,宋体; font-size:14px; line-height:25px">              '')

  FROM (SELECT  id

          FROM test

         GROUP BY id) a

 CROSS apply (

        SELECT [values] =(

            SELECT N',' + [values] FROM test

              WHERE id = a.id

                         FOR XML PATH(''),ROOT('R'),TYPE

        )

) b;

方法②:

ottom:0.5em; font-family:Arial,data=STUFF((SELECT ','+[values] FROM test t WHERE id=t1.id FOR XML PATH('')),1,'')

FROM test t1

GROUP BY id

最后结果:

id                                                 data

-------------                                     ----------------------

001                                                aa,bb

002                                                aaa,bbb,ccc

(2 行受影响)

不想要test的时候:drop table test

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐