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
  • 相关阅读:
    日志/异常处理(nnlog+traceback)
    Excel操作
    商品管理系统
    大乐透作业
    随机生成密码作业
    时间相关的模块
    os模块
    sys模块
    Pytho中dict(或对象)与json之间的互相转化
    Python三元表达式和列表生成式
  • 原文地址:https://www.cnblogs.com/saodiseng2015/p/4962023.html
Copyright © 2011-2022 走看看