• SQL横表、纵表转换


    横表结构

    create table Table_B
    (
        姓名 varchar(20),
        语文 int,
        数学 int,
        英语 int
    )
    insert into Table_B(姓名,语文,数学,英语) values('张三',60,70,80)
    insert into Table_B(姓名,语文,数学,英语) values('李四',90,100,0)
    

    纵表结构

    create table Table_A
    (
        姓名 varchar(20),
        课程 varchar(20),
        成绩 int
    )
    insert into Table_A(姓名,课程,成绩) values('张三','语文',60)
    insert into Table_A(姓名,课程,成绩) values('张三','数学',70)
    insert into Table_A(姓名,课程,成绩) values('张三','英语',80)
    insert into Table_A(姓名,课程,成绩) values('李四','语文',90)
    insert into Table_A(姓名,课程,成绩) values('李四','数学',100)
    

    横表转纵表

    select 姓名,'语文' as 课程,语文 as 成绩 from Table_B union all
    select 姓名,'数学' as 课程,数学 as 成绩 from Table_B union all
    select 姓名,'英语' as 课程,英语 as 成绩 from Table_B
    order by 姓名,课程 desc;
    

    纵表转横表

    
    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 Table_A
    group by 姓名;
    
  • 相关阅读:
    C#.NET.JSON库
    C# .NET 私钥 RSA2,SHA256,签名
    fiddler 捕捉不到代码发出去的HTTP请求
    双网卡共享上网
    json 反序列化成键值对
    C# .NET 杀进程
    docker in centos error
    深入理解磁盘文件系统之inode
    CentOS下安装高版本GCC
    Mac 使用 launchctl 定时运行程序(转载)
  • 原文地址:https://www.cnblogs.com/yinchh/p/10929710.html
Copyright © 2020-2023  润新知