纵表转横表

纵表-->横表

纵表A

姓名科目成绩
张三语文75
张三数学80
张三英语90
李四语文95
李四数学55


横表B 

姓名语文数学英语
张三758090
李四95550


select 姓名,

sum(case 科目 when ‘语文‘ then 成绩 else 0 end) as 语文,

sum(case 科目 when ‘数学‘ then 成绩 else 0 end) as 数学,

sum(case 科目 when ‘英语‘ then 成绩 else 0 end) as 英语

from A

group by 姓名



横表-->纵表

横表结构: K
      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   K   UNION   ALL 
SELECT   姓名,'数学'   AS     科目,数学   AS   成绩   FROM   K   UNION   ALL 
SELECT   姓名,'英语'   AS     科目,英语   AS   成绩   FROM   K
ORDER BY 姓名,科目 DESC;







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值