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

 

posted @ 2011-08-23 15:41  yboo  阅读(795)  评论(0编辑  收藏  举报