SQL STUFF函数 拼接字符串

   今日看到一篇文章,是关于和并列的,也研究了下,还是不错的

 

 

 

 

 

要这种效果。

 

create table tb(idint, value varchar(10))

insert into tbvalues(1,'aa')

insert into tbvalues(1,'bb')

insert into tbvalues(2,'aaa')

insert into tbvalues(2,'bbb')

insert into tbvalues(2,'ccc')

go

 

/*         stuff(param1, startIndex, length, param2)
说明:将param1中自startIndex(SQL中都是从1开始,而非0)起,删除length个字符,然后用param2替换删掉的字符。*/

SELECT id,
                      value = stuff
                          ((SELECT     ',' + value
                              FROM         tb AS t
                              WHERE     t .id = tb.id FOR xml path('')), 1, 1, '')
FROM         tb
GROUP BY id

 

这样即可。

 

 

例如 两个表  汽车分组表tb_group,和汽车表tb_car

 select id, groupname, contace, mobile, begintime, endtime, parkingcount, groupType
,value = stuff((SELECT  ',' + plate FROM  tb_car AS t WHERE  t .groupid = [tb_group].id FOR xml path('')), 1, 1, '')
 from [dbo].[tb_group]

 

结果为

posted @ 2016-03-22 12:44  程序员徐坤  阅读(2614)  评论(0编辑  收藏  举报