zoukankan      html  css  js  c++  java
  • 纵表与横表转换(实用)

    现把转换方法列举如下:

    1、纵表转横表:

        纵表结构 TableA 

    Name

    Course

    Grade

    张三

    语文

    75

    张三

    数学

    80

    张三

    英语

    90

    李四

    语文

    95

    李四

    数学

    55

     横表结构 TableB

    Name

    语文

    数学

    英语

    张三

    75

    80

    90

    李四

    95

    55

    0

    方法一:

    select Name,

    sum(case Course when ‘语文‘ then Grade else 0 end) as 语文,

    sum(case Course when ‘数学‘ then Grade else 0 end) as 数学,

    sum(case Course when ‘英语‘ then Grade else 0 end) as 英语

    from TableA

    group by Name

    2、横表转纵表的"SQL"示例
    横表结构: TEST_H2Z
          ID      姓名    语文        数学       英语      
          1       张三     80         90         70            
          2       李四     90         85         95          
          3       王五     88         75         90          
     
    转换后的表结构:  
          ID     姓名     科目     成绩  
          1       张三     语文     80  
          2       张三     数学     90  
          3       张三     英语     70  
          4       李四     语文     90  
          5       李四     数学     80    
          6       李四     英语     99  
          7       王五     语文     85  
          8       王五     数学     96  
          9       王五     英语     88  
    横表转纵表SQL示例:
    SELECT   姓名,'语文'   AS     科目,语文   AS   成绩   FROM   TEST_H2Z   UNION   ALL 
    SELECT   姓名,'数学'   AS     科目,数学   AS   成绩   FROM   TEST_H2Z   UNION   ALL 
    SELECT   姓名,'英语'   AS     科目,英语   AS   成绩   FROM   TEST_H2Z
    ORDER BY 姓名,科目 DESC;

  • 相关阅读:
    [转]How do I use variables in Oracle SQL Developer?
    [转]一张图理解prototype、proto和constructor的三角关系
    [转]ASP.NET Web API系列教程(目录)
    [转]解读ASP.NET 5 & MVC6系列(7):依赖注入
    [转]什么?你还不会写JQuery 插件
    [书目20170314]理解未来的7个原则
    java List.subList方法中的超级大陷阱
    MyBatis动态传入表名,字段名参数的解决办法---statementType用法
    lvs+keepalived和haproxy+heartbeat区别
    Nginx/LVS/HAProxy负载均衡软件的优缺点详解
  • 原文地址:https://www.cnblogs.com/tangbinghaochi/p/6113418.html
Copyright © 2011-2022 走看看