博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2011-12-05 10:43  itcfj  阅读(285)  评论(0编辑  收藏  举报

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