积累一点小Sql 表的纵横互转玩玩看

1、纵表转横表:

纵表结构 TableA

1

横表结构 TableB

2

方法一:

   1: select Name,
   2: sum(case Course when ‘语文‘ then Grade else 0 end) as 语文,
   3: sum(case Course when ‘数学‘ then Grade else 0 end) as 数学,
   4: sum(case Course when ‘英语‘ then Grade else 0 end) as 英语
   5: from TableA
   6: group by Name
   7:  

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示例:

 1: SELECT 姓名,'语文' AS科目,语文   AS   成绩   FROM   TEST_H2Z   UNION   ALL 
 2: SELECT 姓名,'数学' AS  科目,数学   AS   成绩   FROM   TEST_H2Z   UNION   ALL 
 3: SELECT 姓名,'英语' AS  科目,英语   AS   成绩   FROM   TEST_H2Z
 4: ORDER BY 姓名,科目 DESC;
posted @ 2012-09-19 10:53  这里显示的是昵称  阅读(297)  评论(0编辑  收藏  举报
新浪微博