for xml path语句实现行转列的功能

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

你可能感兴趣的:(Path)