zoukankan      html  css  js  c++  java
  • 典型的列变行,用动态语句来做

    --测试数据

    declare @tab table(id varchar(3),class varchar(10),sums int)

    insert @tab
    select '001','计算机','65' union all

    select '002','计算机','75' union all
    select '001','美术','77' union all

    select '003','体育','54' union all
    select '004','美术','65' union all

    select '005','体育','55' union all
    select '001','体育','56' union all

    select '002','体育','88' union all
    select '002','美术','98' union all

    select '003','计算机','82' union all
    select '003','美术','92' union all

    select '004','计算机','85' union all
    select '004','体育','25' union all

    select '005','计算机','89' union all
    select '005','美术','99';


    --select * from @tab

    --下面是测试代码


    select * into #temp1 from @tab
    declare @str varchar(8000)

    set @str='select id as 编号,'
    select @str=@str+'

    sum(case class when'''+class+'''then sums else 0 end) as'''+class+'成绩'+''','

    from (select distinct class from #temp1)t

    set @str=left(@str,len(@str)-1)+' from #temp1 group by id'
    exec(@str)

    drop table #temp1


    /* 下面是测试结果

    (所影响的行数为 15 行)



    (所影响的行数为 15 行)

    编号 计算机成绩 美术成绩 体育成绩 

    ---- ----------- ----------- ----------- 
    001 65 77 56
    002 75 98 88

    003 82 92 54
    004 85 65 25
    005 89 99 55 */

  • 相关阅读:
    HBase in Action前三章笔记
    关于视频YUV
    23种设计模式用英语怎样表达?
    UVA 10620
    工具,帮助我们更高效的工作
    VS下控制台执行保持(不要一闪而过)
    C语言之结构体
    Linux grep命令和正则表达式
    C#中的“静态”
    推荐一个计算机视觉图书:python计算机视觉编程
  • 原文地址:https://www.cnblogs.com/zxktxj/p/2575187.html
Copyright © 2011-2022 走看看