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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...