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
  • 相关阅读:
    ubuntu14.04 允许root用ssh登录
    MySQL(Navicat)运行.sql文件时报错:[Err] 2006
    Ubuntu14.04 安装git
    Ubuntu14.04下安装redis
    ubuntu apt-get update 失败解决
    检出商品详情中的图片并替换url
    nohup和&后台运行,进程查看及终止
    ubuntu 的chmod 和 chown
    php5.4安装fileinfo扩展
    crontab
  • 原文地址:https://www.cnblogs.com/saodiseng2015/p/4962023.html
Copyright © 2011-2022 走看看