就是想把以下查询的结果放入一张虚拟表中,请问怎么实现呢?
declare @sql varchar(1000)
set @sql = 'select StudentCode'
select @sql = @sql + ',sum(case CourseName when '''+CourseName+''' then ExamScore else 0 end)  
['+CourseName+']'
from (select distinct CourseName from #temp_score) as a
set @sql = @sql + 'from #temp_score group by StudentCode'
exec(@sql)

解决方案 »

  1.   

    declare   @sql   varchar(1000) 
    set   @sql   =   'select   StudentCode ' 
    select   @sql   =   @sql   +   ',sum(case   CourseName   when   ' ' '+CourseName+ ' ' '   then   ExamScore   else   0   end)     
    [ '+CourseName+ '] ' 
    from   (select   distinct   CourseName   from   #temp_score)   as   a 
    set   @sql   =   @sql   +   ' into #t  from   #temp_score   group   by   StudentCode ' 
    exec(@sql) 
      

  2.   

    create table #t (StudentCode varchar(50),Name varchar(50))
    declare       @sql       varchar(1000)   
    set       @sql       =       'select       StudentCode   '   
    select       @sql       =       @sql       +       ',sum(case       CourseName       when       '   '   '+CourseName+   '   '   '       then       ExamScore       else       0       end)           
    [   '+CourseName+   ']   '   
    from       (select       distinct       CourseName       from       #temp_score)       as       a   
    set       @sql       =       @sql       +       '      from       #temp_score       group       by       StudentCode   'insert #t   
    exec(@sql)   
      

  3.   

    declare   @sql   varchar(1000) 
    set   @sql   =   'select   StudentCode ' 
    select   @sql   =   @sql   +   ',sum(case   CourseName   when   ' ' '+CourseName+ ' ' '   then   ExamScore   else   0   end)     
    [ '+CourseName+ '] ' 
    from   (select   distinct   CourseName   from   #temp_score)   as   a set   @sql   =   @sql   +   'into #临时表名'set   @sql   =   @sql   +   'from   #temp_score   group   by   StudentCode ' 
    exec(@sql)
      

  4.   

    --真实表方法
    secect * into 表名 from 查询表名
    --临时表方法
    secect * into #表名 from 查询表名