SQL SERVER 字符合并多行为一列

时间:2023-03-09 19:02:25
SQL SERVER 字符合并多行为一列

【字符合并多行为一列】

思路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