Sqlserver中如何通过groupby实现分组合并--------------------第⼀步:新建表: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'
UNION ALL SELECT '002', 'bbb'
UNION ALL SELECT '002', 'ccc';
具体实现的⽅法:
⽅法①
SELECT id,
[values] =
stuff(b.[values].value('/R[1]', 'nvarchar(max)'),
1,
1,
'')
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;
⽅法②:
SELECT id, data=STUFF((SELECT ','+[values] FROM test t WHERE id=t1.id FOR XML PATH('')), 1, 1, '')
FROM test t1
GROUP BY id
最后结果:
id                                                data
-------------                                    ----------------------
001                                                aa,bb
002                                                aaa,bbb,ccc
groupby分组(2 ⾏受影响)
不想要test的时候:drop table test

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。