【字符合并多行为一列】
思路1:行转列,在与字符拼接(适用每组列数名相同)
思路2:转xml,去掉多余字符(适用所有)
假设兴趣表Hobbys
Name | Hobby |
小张 | 打篮球 |
小张 | 踢足球 |
Name | Hobby |
小张 | 打篮球,踢足球 |
【思路1】注意:此方法只是用分组里行数内容固定的情况,如学科:语文,英语,数学。
select Name,打篮球+','+踢足球 AllHobby from (select * from Hobbys pivot (Hobby for Hobby in (打篮球,踢足球)) b) c
【思路2】次方法使用所有情况(推荐),备注:先理解for xml path,stuff。
select Name,stuff((select ','+Hobby from Hobbys b where b.Name=a,Name for xml path('')),1,1,'') AllHobbys from Hobbys a