zoukankan      html  css  js  c++  java
  • SQL Server 行与列之间转换

        SQL Server把行转列:

    如以下表:

    当表中只有少量数据时,可以采用静态SQL语句
    如:
    select stuName ,
    max(case  Course when '语文' then score else 0 end) as 语文,
    max(case  Course when '数学' then score else 0 end) as 数学,
    max(case  Course when '英语' then score else 0 end) as 英语,
    max(case  Course when '物理' then score else 0 end) as 物理,
    sum(score) as '总分'
    from Student group by stuName
     
    当数据表中有大量数据,就必须采用动态SQL语句了
    如下操作:
    declare @name varchar(8000) --声明变量
    set @name = 'select stuName '
    select @name = @name + ' , sum(case Course when ''' + Course + ''' then score else 0 end) [' + Course + ']'
    from (select distinct Course from Student) as a
    set @name = @name + ' from Student group by stuName'
    exec(@name)
     
    其中distinct这个关键字用来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值
    以上两个结果是一样的,结果如下:
     
     
     
     
  • 相关阅读:
    Git
    Qcon2016上海站PPT
    TeamCity
    在cmd界面,怎么样退出Node.js运行环境
    python 2.x与python3.x的区别
    d3.max()与d3.min()
    d3.svg.line() 曲线构造器
    d3.js 之SVG:矢量化图形绘制
    moment.js 时间格式化库
    directive
  • 原文地址:https://www.cnblogs.com/lxjie/p/3097963.html
Copyright © 2011-2022 走看看