table1 有字段:姓名,科目,分数 
table2 有字段:name,语文,数学,英语
求将将表1值插入并创建表2的语句
---=---表1------
姓名 科目 分数
张三 语文 99 
张三 英语 97 
张三 数学 98
李四 语文 96
李四 数学 95
李四 英语 94
---=---表2------
name 语文 英语 数学
张三  99   97   98
李四  96   95   94
SQL  mysql oracle 

解决方案 »

  1.   

    declare @sql nvarchar(1000)
    select @sql=isnull(@sql,'')+',max(case when 科目='''+科目+''' then 分数 else 0 end)['+科目+']' from (select distinct 科目 from tb)t order by 科目 desc
    exec('select 姓名'+@sql+' from tb group by 姓名 order by 姓名 desc')
      

  2.   


    select 姓名,
    max(case when 科目='语文' then 分数 else 0 end),语文,
    max(case when 科目='数学' then 分数 else 0 end),数学,
    max(case when 科目='英语' then 分数 else 0 end),英语
    FROM 表1
    GROUP BY 姓名
      

  3.   

    谢谢各位,,STkiRa回答的很好