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

    116、横表、纵表转换

    1纵表结构 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, 

    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; 

  • 相关阅读:
    jquery 插件 国外
    数据库层面记录操作日志
    VS2015 发布
    SSO 单点登录
    在C#程序中模拟发送键盘按键消息
    C#中的DBNull、Null、""和String.Empty
    .Net 中通用的FormatString格式符整理
    验证码图片生成代码
    C#操作Excel知识点
    C#获取存储过程的 Return返回值和Output输出参数值
  • 原文地址:https://www.cnblogs.com/zihunqingxin/p/3141248.html
Copyright © 2011-2022 走看看