SQL server 数据库中,如何将分组后元素用逗号隔开并作为一条记录?

如上图所示,从表T1转换到表T2。按T1中MID分组,分组后每组元素用逗号隔开并作为一条记录存放到表T2中,而且去除重复的元素。我知道在Oracle中有现成的函数,但是不... 如上图所示,从表T1转换到表T2。按T1中MID分组,分组后每组元素用逗号隔开并作为一条记录存放到表T2中,而且去除重复的元素。我知道在Oracle中有现成的函数,但是不太清楚SQL Server如何操作。还得请大神帮忙,多谢啦! 展开
 我来答
badkano
推荐于2018-03-23 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部

创建表及数据

create table t1
(mid int,
uid varchar(1))
insert into t1 values (1,'a')
insert into t1 values (1,'b')
insert into t1 values (1,'b')
insert into t1 values (1,'c')
insert into t1 values (1,'d')
insert into t1 values (2,'a')
insert into t1 values (2,'b')
insert into t1 values (2,'c')
insert into t1 values (2,'c')
insert into t1 values (3,'a')
insert into t1 values (3,'b')
insert into t1 values (3,'c')
insert into t1 values (3,'c')

 

执行

select mid, items=stuff((select ','+uid from (select distinct mid,uid from t1) t where mid=s.mid for xml path('')), 1, 1, '')  
from (select distinct mid,uid from t1) s
group by mid

 

 

结果

szm341
2013-11-14 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5124万
展开全部
sqlserver2005以上版本
select mid,stuff((select distinct ','+uid from t1 where a.mid=mid for xml path('')),1,1,'')items
from t1 a group by mid
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式