初识FOR XML PATH

今天公司升级考试(我打酱油的熟悉下),结果第一题就熄火了,大概是这样的:

一张学生表,列分别为(stuID,sName,hobby),stuID代表学生编号,sName代表学生姓名,hobby列存学生的爱好

要求是查询学生表,显示所有学生的爱好的结果集

我在那搞了半天没搞出来,过后问了下同事,他说用FOR XML PATH,搞了下出来了

SELECT B.sName,LEFT(StuList,LEN(StuList)-1) as hobby FROM (
    SELECT sName,
        (SELECT hobby+',' FROM student 
          WHERE sName=A.sName 
          FOR XML PATH('')) AS StuList
    FROM student A 
    GROUP BY sName
) B         

 其实FOR XML PATH就是将查询结果集以XML形式展现

原文地址:https://www.cnblogs.com/DonnyPeng/p/3812747.html