Welcome 微信登录

首页 / 数据库 / MySQL / Oracle列转换为行

首先介绍行转换为列,Oracle行转换为列是比较常见,网上常见的例子如下:grades表:student  subject   gradestudent1  语文     80student1  数学     70student1  英语     60student2  语文     90student2  数学     80student2  英语     10转换为语文  数学    英语Student1  80     70      60Student2  90     80      100执行语句如下:
  1. Select student,  
  2.   
  3. sum(decode(subject,"语文",grade,null)) "语文",  
  4.   
  5. sum(decode(subject,"数学",grade,null)) "数学",  
  6.   
  7. sum(decode(subject,"英语",grade,null)) "英语"  
  8.   
  9. from grades  
  10.   
  11. group by student order by student;  
  1. Select student,sum(decode(subject,"语文",grade,null)) "语文",sum(decode(subject,"数学",grade,null)) "数学",sum(decode(subject,"英语",grade,null)) "英语"from gradesgroup by student order by student;  
下面,介绍列转换为行的操作:
假设一个表test,记录如下:
  表头 id   proc1  proc2   proc3   
  记录 12   3.4      6.7   12.4   
  想变成如下格式:   
  表头 id   proc      value   
  记录  12  proc1       3.4   
  记录 12   proc2      6.7   
  记录 12   proc3      12.4  方法一:采用union all方法(这种方法会随着字段的增多,变得很长,不推荐)
  1. select id,"proc1",proc1  
  2.     from testjac where id=12  
  3.     union all  
  4.     select id,"proc2",proc2  
  5.     from testjac where id=12  
  6.     union all  
  7.     select id,"proc3",proc3  
  8. from testjac where id=12;  
  1. select id,"proc1",proc1    from testjac where id=12    union all    select id,"proc2",proc2    from testjac where id=12    union all    select id,"proc3",proc3from testjac where id=12;  
方法二:采用decode+系统视图USER_TAB_COLS(推荐):
  1. select A.id,B.column_name,decode(B.column_name,"PROC1",A.proc1,"PROC2",A.proc2,"PROC3",A.proc3,null) value  
  2. from test A,(select column_name from user_tab_cols where column_id>1 and table_name="TEST") B  
Oracle---控制SQL*Plus的环境和数据字典Oracle的归档模式相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数