下面的语句是交叉表查询,就是行转列,我想把结果插入到一张新表中,请问 into 新表 这语句该加在什么地方?create table hzl (name char(10),km char(10),cj int)
go
insert hzl values('张三','语文',80)
insert hzl values('张三','数学',86)
insert hzl values('张三','英语',75)
insert hzl values('李四','语文',78)
insert hzl values('李四','数学',85)
insert hzl values('李四','英语',78)
select * from hzl
declare @sql varchar(8000)
set @sql = 'select name'
select @sql = @sql + ',sum(case km when '''+km+''' then cj end) ['+km+']'
from (select distinct km from hzl) as a
select @sql = @sql+' from hzl group by name'
exec(@sql)drop table hzl

解决方案 »

  1.   

    select @sql = @sql+' INTO YOURTABLE from hzl group by name'    /*大写的部分*/
    exec(@sql)
      

  2.   

    create table hzl (name char(10),km char(10),cj int)
    go
    insert hzl values('张三','语文',80)
    insert hzl values('张三','数学',86)
    insert hzl values('张三','英语',75)
    insert hzl values('李四','语文',78)
    insert hzl values('李四','数学',85)
    insert hzl values('李四','英语',78)
    --select * from hzl
    declare @sql varchar(8000)
    set @sql = 'select name'
    select @sql = @sql + ',sum(case km when '''+km+''' then cj end) ['+km+']'
    from (select distinct km from hzl) as a
    select @sql = @sql+' into newtb from hzl group by name'
    exec(@sql)select * from newtbdrop table hzl,newtb