for xml path语句实现行转列的功能
现有2张表,学生表Tb_Student和成绩表Tb_Result,如图:
Tb_Student Tb_Result
现在想要实现查询出如下的结果:
即每个学生的所有成绩放在一列里,这就是典型的行转列的问题。
使用sql中的for xml path即可实现,
select Stu_id,Stu_name,
(select class + ':' + cast(score as varchar) + ','
from Tb_Result where Stu_id=s.Stu_id
for xml path('')) as result
from Tb_Student s