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

    1.纵表转横表:

    纵表结构:Table1

    转换后的横表结构:

    Sql示例代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select username,
     
    sum(case Course when '语文' then Grade else endas 语文,
     
    sum(case Course when '数学' then Grade else endas 数学,
     
    sum(case Course when '英语' then Grade else endas 英语
     
    from Table1
     
    group by username

    2、横表转纵表:

         横表结构: TableA
          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示例代码:

    1
    2
    3
    SELECT   姓名,'语文'   AS     科目,语文   AS   成绩   FROM   TableA UNION   ALL
    SELECT   姓名,'数学'   AS     科目,数学   AS   成绩   FROM   TableA UNION   ALL
    SELECT   姓名,'英语'   AS     科目,英语   AS   成绩   FROM   TableA ORDER BY 姓名,科目 DESC;

    case 变量表达式              --对某个‘变量表达式’进行判断
    when 值                      --当‘变量表达式’是某个‘值’时
    then 返回值表达式            --返回‘返回值表达式’值
    [when...
    then...
    .....]                       --可以进行多次判断
    [else 其他情况返回值表达式]  --不符合所有when后面的就是其他情况了
    end                          --结束

  • 相关阅读:
    OpenStack之Fuel架构及其工作原理
    Docker容器常用命令汇总
    openstack 5大组件之间的关系和基本架构思维导图
    LeetCode刷题实战4:寻找两个正序数组的中位数
    LeetCode刷题实战3:无重复字符的最长子串
    LeetCode刷题实战2:两数相加
    LeetCode刷题实战1:两数之和
    剑指Offer 05. 替换空格
    剑指Offer 03. 数组中重复的数字
    TensorFlow2.0(4):填充与复制
  • 原文地址:https://www.cnblogs.com/xibei666/p/5356188.html
Copyright © 2011-2022 走看看