declare @s varchar(8000)
set @s = ''select @s = @s+',['+course_name+']=max(case when b.course_ID when '
              +rtrim(course_ID)+' then b.stu_score end)' from 课程表set @s = 'select a.stu_ID,a.stu_name'+@s
         +' from stu_info a,stu_score b where a.stu_ID=b.stu_ID group by a.stu_ID,a.stu_name'exec(@s)

解决方案 »

  1.   

    谢谢子陌,快好了 但是
    服务器: 消息 156,级别 15,状态 1,行 1
    在关键字 'when' 附近有语法错误。
    好像是rtrim的事
      

  2.   

    你在exec(@s)前加一个
    print @s
    看看生成的sql语句到底是什么地方出了毛笔
      

  3.   

    declare @s varchar(8000)
    set @s = ''select @s = @s+',['+course_name+']=max(case when b.course_ID = '
                  +rtrim(course_ID)+' then b.stu_score end)' from 课程表set @s = 'select a.stu_ID,a.stu_name'+@s
             +' from stu_info a,stu_score b where a.stu_ID=b.stu_ID group by a.stu_ID,a.stu_name'exec(@s)