今日看到一篇文章,是关于和并列的,也研究了下,还是不错的
文章来源地址:https://www.yii666.com/article/764065.html
要这种效果。
create table tb(idint, value varchar(10))
insert into tbvalues(1,'aa')
insert into tbvalues(1,'bb')
insert into tbvalues(2,'aaa')网址:yii666.com
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] 文章地址https://www.yii666.com/article/764065.html
结果为