oracle行转列

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 04:14 点击:

具体Sql语句怎么写  
  比如这个例子,但是科目不固定,是动态的  
  Create   table   test   (name   char(10),km   char(10),cj   Number)  
   
  insert   into   test   values('张三','语文',80)  
  insert   into   test   values('张三','数学',86)  
  insert   into   test   values('张三','英语',75)  
  insert   into   test   values('李四','语文',78)  
  insert   into   test   values('李四','数学',85)  
  insert   into   test   values('李四','英语',78)  
   
  commit;  
  怎样实现成这样:  
  name     语文     数学     英语  
  李四     78         85         83  
  张三     80         86         75  
   
  Top
3 楼chenyiwei(无心快语)回复于 2004-11-04 11:31:56 得分 0
select name,sum(case when km='语文' then cj else 0 end) 语文,sum(case when km='英语' then cj else 0 end) 英语,sum(case when km='数学' then cj else 0 end) 数学 from test group by name一个比较笨的办法:  
  select    
  name,  
  sum(decode(km,'语文',cj,0)   语文,  
  sum(decode(km,'数学',cj,0)   数学,  
  sum(decode(km,'英语',cj,0)   英语  
  from   test   group   by   nameTop
4 楼rwpublic(rwpublic)回复于 2004-11-04 11:44:01 得分 0
如何实现行列转换  
  [A]1、固定列数的行列转换  
  如  
  student   subject   grade  
  ---------------------------  
  student1   语文   80  
  student1   数学   70  
  student1   英语   60  
  student2   语文   90  
  student2   数学   80  
  student2   英语   100  
  ……  
  转换为    
  语文   数学   英语  
  student1   80   70   60  
  student2   90   80   100  
  ……  
  语句如下:  
  select   student,sum(decode(subject,'语文',   grade,null))   "语文",  
  sum(decode(subject,'数学',   grade,null))   "数学",  
  sum(decode(subject,'英语',   grade,null))   "英语"  
  from   table  
  group   by   student  
   
  2、不定列行列转换  
  如  
  c1   c2  
  --------------  
  1 

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Table函数使用简介
      • Oracle数据库Constraint约束的常用操作及异常处理
      • Bulk Collect性能分析(zz)
      • export/import的使用
      • OCP043第十五讲 Database Security
      • ORACLE10gr2数据导入MySQL方案
      • oracle 让sys用户可以使用isqlplus
      • 在oracle数据库下使用iSQL*Plus DBA访问数据库
      • Oracle行列转换小结
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1