zoukankan      html  css  js  c++  java
  • sqlServer:行列转换之多行转一行

    记得在刚进项目组时候,使用oracle数据库,遇到的第一个难题就是行列转换,哈哈,真是菜的一BI,现在使用sqlServer数据库,又遇到了,记录一下,以备后用和帮助后来者。

    言归正传:

    数据库:sqlServer2008R2 英文版

    1.建表:学生表(姓名,学科,成绩)

    CREATE TABLE teststudent(
        stuname varchar(50) NULL,
        subjects varchar(50) NULL,
        source int NULL
    )
    drop table teststudent ;
    select * from teststudent ;
    delete from teststudent ;

    2.准备数据:

    insert into teststudent(stuname,subjects,source) values('小明','语文',80);
    insert into teststudent(stuname,subjects,source) values('小明','数学',85);
    insert into teststudent(stuname,subjects,source) values('小明','英语',90);
    insert into teststudent(stuname,subjects,source) values('小红','语文',86);
    insert into teststudent(stuname,subjects,source) values('小红','数学',90);
    insert into teststudent(stuname,subjects,source) values('小红','英语',85);
    insert into teststudent(stuname,subjects,source) values('小亮','语文',99);
    insert into teststudent(stuname,subjects,source) values('小亮','数学',99);
    insert into teststudent(stuname,subjects,source) values('小亮','英语',100);

    3.转换:可以采用max()、sum()两种方式

    --方式1:
    select stuname ,
    MAX(case when subjects = '语文' then source else 0 end ) '语文',
    MAX(case when subjects = '数学' then source else 0 end ) '数学',
    MAX(case when subjects = '英语' then source else 0 end ) '英语'
    from teststudent group by stuname ;

    --方式2:
    select stuname ,
        SUM(case when subjects = '语文' then source else 0 end) '语文',
        SUM(case when subjects = '数学' then source else 0 end ) '数学',
        SUM(case when subjects = '英语' then source else 0 end ) '英语'
    from teststudent group by stuname ;

    4.其他待补充

  • 相关阅读:
    ueditor内容带格式回显(html字符串回显)
    thymleaf th:text="|第${user.courseSort}课|" 对于不知道的真的是解渴了
    Thymleaf 从某处(不包含某处)开始截取字符串到末尾
    layUI 实现自定义弹窗
    layUI实现可选项 弹框
    layUI弹出框提示
    点击编辑table变为可编辑状态
    POI导出数据以Excel的方式录入,下载
    基于BootStrap的initupload()实现Excel上传和获取excel中的数据
    下载导入模板
  • 原文地址:https://www.cnblogs.com/zhengzeze/p/5584428.html
Copyright © 2011-2022 走看看