22,209
社区成员
发帖
与我相关
我的任务
分享
select category,result=stuff((select '、'+result from
( select case when category=3 then answerid+ ';' +answertest
when category=5 then answerid+';'+title
when category=6 then answerid+';'+title
when category=7 then answerid+';'+title else '' end as result,category,[order] from tb )a
where a.category=b.category order by a.[order] for xml path('')),1,1,'') from tb b group by category
/*
category result
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3 nk01;das
5 nk02;aaa
6 nk03;bbb 、nk03-1;ccc
7 nk04;eee 、nk04-2;ggg 、nk04-1;fff
(4 行受影响)
[/quote]
select id,result=stuff((select '、'+result from
( select case when category=3 then answerid+ ';' +answertest
when category=5 then answerid+';'+title
when category=6 then answerid+';'+title
when category=7 then answerid+';'+title else '' end as result,category,[order],id from tb )a
where a.category=b.category order by a.[order] for xml path('')),1,1,'') from tb b group by category ,id
/*
id result
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 nk01;das
2 nk02;aaa
3 nk03;bbb 、nk03-1;ccc
4 nk04;eee 、nk04-2;ggg 、nk04-1;fff
(4 行受影响)
select category,result=stuff((select '、'+result from
( select case when category=3 then answerid+ ';' +answertest
when category=5 then answerid+';'+title
when category=6 then answerid+';'+title
when category=7 then answerid+';'+title else '' end as result,category,[order] from tb )a
where a.category=b.category order by a.[order] for xml path('')),1,1,'') from tb b group by category
/*
category result
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3 nk01;das
5 nk02;aaa
6 nk03;bbb 、nk03-1;ccc
7 nk04;eee 、nk04-2;ggg 、nk04-1;fff
(4 行受影响)
create table tb(id int,answerid varchar(50),answertest varchar(50),category int,title char(10),[order] int )
insert tb select 1, 'nk01', 'das', 3 , 'kkk', 0
insert tb select 2, 'nk02', '' ,5 , 'aaa' , 0
insert tb select 3, 'nk03' , '' ,6 , 'bbb' , 0
insert tb select 3, 'nk03-1', '' , 6 , 'ccc' , 0
insert tb select 4, 'nk04' , '' ,7 , 'eee' , 1
insert tb select 4, 'nk04-1' , '' ,7 , 'fff' , 3
insert tb select 4, 'nk04-2' , '' ,7 , 'ggg' , 2
select category,result=stuff((select '、'+result from
( select case when category=3 then answerid+ ';' +answertest
when category=5 then answerid+';'+title
when category=6 then answerid+';'+title
when category=7 then answerid+';'+title else '' end as result,category from tb )a
where a.category=b.category for xml path('')),1,1,'') from tb b group by category
/*
category result
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3 nk01;das
5 nk02;aaa
6 nk03;bbb 、nk03-1;ccc
7 nk04;eee 、nk04-1;fff 、nk04-2;ggg
(4 行受影响)