当前位置: 代码迷 >> Sql Server >> 怎么将一张表中有着相同ID的某个字段的所有值在查询结果中放入一个字段
  详细解决方案

怎么将一张表中有着相同ID的某个字段的所有值在查询结果中放入一个字段

热度:18   发布时间:2016-04-27 14:00:03.0
如何将一张表中有着相同ID的某个字段的所有值在查询结果中放入一个字段
A B C
1 1 王
2 2 李
3 3 赵
4 3 钱
5 3 孙
可以有查询语句可以达到如下效果吗:
B C
1 王
2 李
3 赵,钱,孙

------解决方案--------------------
SQL code
select B , C=stuff((select ','+C from tablename t where B =tablename.B for xml path('')), 1, 1, '') from tablename group by B
------解决方案--------------------
SQL code
declare @tb table (id int, value varchar(10)) insert into @tb values(1, 'aa') insert into @tb values(1, 'bb') insert into @tb values(2, 'aaa') insert into @tb values(2, 'bbb') insert into @tb values(2, 'ccc')select id , [ccname]=stuff((select ','+[value] from @tb t where id =tv.id for xml path('')), 1, 1, '') from @tb as tvgroup by id /*id    ccname1    aa,bb2    aaa,bbb,ccc*/
  相关解决方案