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')
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')