补充一下:那些列名是value,value1,value2,........value9,value10,value11这样的

解决方案 »

  1.   

    这个给你参考一下吧!!            表:
    学生姓名   学科     成绩
    利益        语文     85
    张三        语文     69
    利益        数学     59
    张三        数学     85
    利益        英语     85
    张三        英语     69要求查询的结果为:       学生姓名   语文   数学   英语 
           利益        85    59      85
           张三        69    85      69方法:
    declare @sql varchar(8000)
    set @sql = 'select 学生姓名'
    select @sql = @sql + ',sum(case 学科 when '''+学科+''' then 成绩 end) ['+学科+']'
      from (select distinct 学科 from 表) tem
    select @sql = @sql+' from 表 group by 学生姓名'
    exec(@sql)
    go--方法分析:
    A:主要的方法为这一段:select @sql = @sql + ',sum(case 学科 when '''+学科+''' then 成绩 end) ['+学科+']'  from (select distinct 学科 from 表) tem
    B:这一段的目的是把列内容中唯一值横向的列出并汇总
      

  2.   

    行改为列???
    不太现实吧?这个表中有1w都条数据阿,sql server可以有那么多列?