zoukankan      html  css  js  c++  java
  • sql server 行列互转

    1 列转行

    测试脚本

    create table tb(姓名 varchar(10),课程 varchar(10),分数 int)
    
    insert into tb values('张三','语文',74)
    
    insert into tb values('张三','数学',83)
    
    insert into tb values('张三','物理',93)
    
    insert into tb values('李四','语文',74)
    
    insert into tb values('李四','数学',84)
    
    insert into tb values('李四','物理',94)
    
    go

    转化脚本

    select 姓名 , 
    max(case 课程 when '语文' then 分数 else 0 end) 语文, 
    max(case 课程 when '数学' then 分数 else 0 end) 数学 ,
    max(case 课程 when '物理' then 分数 else 0 end) 物理 
    from tb  group by 姓名

    附加求总分和平均分

    select 姓名 , 
    max(case 课程 when '语文' then 分数 else 0 end) 语文, 
    max(case 课程 when '数学' then 分数 else 0 end) 数学 ,
    max(case 课程 when '物理' then 分数 else 0 end) 物理 ,
    sum(分数) 总分,
    cast(avg(分数*1.0)as decimal(18,2)) 平均分
    from tb  group by 姓名

    2 列传行

    测试脚本

    create table tbs(姓名 varchar(10),语文 int,数学 int,物理 int)
    
    insert into tbs values('张三',74,83,93)
    
    insert into tbs values('李四',74,84,94)
    
    go

    转化脚本

     select 姓名,课程 ='语文',分数=语文 from tbs union 
    
     select 姓名,课程='数学',分数=数学 from tbs union 
    
     select 姓名,课程='物理',分数=物理 from tbs
  • 相关阅读:
    window环境搭建zookeeper,kafka集群
    Spring Boot中使用Redis小结
    Spring Boot Mock单元测试学习总结
    Git快速入门进阶篇
    Git快速入门
    玩转Git入门篇
    Apache Kafka简介与安装(二)
    Apache Kafka简介与安装(一)
    Spring Boot中使用EhCache实现缓存支持
    java基础面试题(JVM篇)
  • 原文地址:https://www.cnblogs.com/saodiseng2015/p/4962023.html
Copyright © 2011-2022 走看看