zoukankan      html  css  js  c++  java
  • 表的透视变换

    将表的行列倒置显示(透视变换)

    1)、创建数据表并添加数据

    create table Score
    (
        学号 nvarchar(10)
        ,课程 nvarchar(10)
        ,成绩 nvarchar(10)
    );
    insert into Score(学号,课程,成绩)values('0001','语文',87),('0001','数学',79),('0001','英语',95)
    ,('0002','语文',69),('0002','数学',84);

    2)、先查询观察整张表的结构

    select * from Score;

     3)、先显示要展示的基本的结构

    select 学号,'语文','数学','英语'  from Score;

     4)、使用case语句,如果课程=语文 则直接显示语文成绩,否则显示0,其他科目同

    select 学号
        ,case when 课程='语文' then 成绩 else 0 end as'语文'
        ,case when 课程='数学' then 成绩 else 0 end as'数学'
        ,case when 课程='英语' then 成绩 else 0 end as'英语'
    from Score;

     5)、从5行变2行,使用分组聚合(按学号分组,各科分组聚合)

    select 学号
        ,sum(case when 课程='语文' then 成绩 else 0 end) as'语文'
        ,sum(case when 课程='数学' then 成绩 else 0 end) as'数学'
        ,sum(case when 课程='英语' then 成绩 else 0 end) as'英语'
    from Score group by 学号;

  • 相关阅读:
    使用过滤器解决JSP页面的乱码问题
    六度空间(MOOC)
    navicat连接mysql出现1251错误
    Saving James Bond
    列出连通集(mooc)
    File Transfer(并查集)
    堆中的路径(MOOC)
    智慧树mooc自动刷课代码
    Hibernate三种状态的区分。
    Hibernate中get和load方法的区别
  • 原文地址:https://www.cnblogs.com/dearroy/p/12782013.html
Copyright © 2011-2022 走看看