zoukankan      html  css  js  c++  java
  • 横表、纵表转换

    纵表结构 TableA 

    Name

    Course

    Grade

    张三

    语文

    75

    张三

    数学

    80

    张三

    英语

    90

    李四

    语文

    95

    李四

    数学

    55

    横表结构 TableB

    Name

    语文

    数学

    英语

    张三

    75

    80

    90

    李四

    95

    55

    0

    先理解:

        select Name,(case Course when ‘语文‘ then Grade else 0 end) as 语文, (case Course when ‘数学‘ then Grade else 0 end) as 数学, (case Course when ‘英语‘ then Grade else 0 end) as 英语 from TableA

    然后理解标准答案:

    select Name,

    Proddetlicon

    nav

    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

    横表转纵表的"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

     
     

     

  • 相关阅读:
    2018软件工程第七次作业(团队二)
    2018软件工程第六次作业(团队一)
    2018软件工程第五次作业(结对二)
    2018软件工程第四次作业(结对一)
    2018软件工程第三次作业(个人三)
    2018软件工程第二次作业(个人二)
    2018软件工程第一次作业(个人一)
    Serializable与transient的联合使用:动态管理成员属性——《Thinking in Java》随笔033
    transient关键字的应用——《Thinking in Java》随笔032
    Serializable:用于保存及还原对象——《Thinking in Java》随笔031
  • 原文地址:https://www.cnblogs.com/hanningHNN/p/13775215.html
Copyright © 2011-2022 走看看