今天公司升级考试(我打酱油的熟悉下),结果第一题就熄火了,大概是这样的:
一张学生表,列分别为(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形式展现