多变量解决。
如用@a 放select,@b 放from。你的语句也可以加条件大于一的放@a小于一的放@b

解决方案 »

  1.   

    declare @sql1 varchar(8000),@sql2 varchar(8000)
    select @sql1 = '',@sql2=''
    select @sql1 = @sql1 + ',sum(case CourseName when '''+CourseName+''' then Score else 0 end) ['+CourseName+']'
      from (select distinct CourseName from 表名 where CourseName like 'a%') aselect @sql2 = @sql2 + ',sum(case CourseName when '''+CourseName+''' then Score else 0 end) ['+CourseName+']'
      from (select distinct CourseName from 表名 where CourseName not like 'a%') aexec('select StudentID'+@sql1+@sql2+' from 表名 group by StudentID')