最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle行列转换问题总结

来源:懂视网 责编:小采 时间:2020-11-09 07:36:00
文档

Oracle行列转换问题总结

Oracle行列转换问题总结:如果要整理出Oracle版中的FAQs,我想其中一定少不了行转列问题。今天利用一些闲暇时候整理一下我的理解与心得。在展开我的总结之前,我反复思考这样的问题:什么是行转列?在何种情况下需要行转列? 一,什么是行转列? 观察了行转列前后的变化,可以诠释为
推荐度:
导读Oracle行列转换问题总结:如果要整理出Oracle版中的FAQs,我想其中一定少不了行转列问题。今天利用一些闲暇时候整理一下我的理解与心得。在展开我的总结之前,我反复思考这样的问题:什么是行转列?在何种情况下需要行转列? 一,什么是行转列? 观察了行转列前后的变化,可以诠释为

如果要整理出Oracle版中的FAQs,我想其中一定少不了行转列问题。今天利用一些闲暇时候整理一下我的理解与心得。在展开我的总结之前,我反复思考这样的问题:什么是行转列?在何种情况下需要行转列? 一,什么是行转列? 观察了行转列前后的变化,可以诠释为

如果要整理出Oracle版中的FAQs,我想其中一定少不了行转列问题。今天利用一些闲暇时候整理一下我的理解与心得。在展开我的总结之前,我反复思考这样的问题:什么是行转列?在何种情况下需要行转列?

一,什么是行转列?

观察了行转列前后的变化,可以诠释为,由多行数据转换为单行(多)列的展现,注意这里对单行的理解,是每组单行。 (如有理解上的偏颇或者误区,多请指正!)

二,行转列的类型

Oracle版中有很多行列转换的问题,汇总起来,大致有两种。

Type1:

转换为

这种需求多为展示简单的统计汇总结果,实现也相对简单。

Type2:

转换为

相较之下,这种转换就相对复杂一些,在完成行转列的同时,还需要对某个列进行聚合。

实验

现在有一张Score表,存储学生成绩详情。

Code-1 : SELECT SDTID, SNAME,WMSYS.WM_CONCAT(SCORE) AS "SCORE1,SCORE2,SCORE3"
FROM SCORE
GROUP BY SDTID, SNAME;

这里仅仅使用了一个Oralce 内置函数WMSYS.WM_CONCAT()就完成了Tyoe-1的转换。

Code- 2:SELECT SDTID,
SNAME,
MAX(DECODE(COURSE, '语文',SCORE)) 语文,
MAX(DECODE(COURSE, '数学' ,SCORE)) 数学,
MAX(DECODE(COURSE, '英语' ,SCORE)) 英语
FROM SCORE
GROUP BY SDTID, SNAME;

这是基于原表COURSE列的转换,COURSE有几种值(语文,数学,英语)直接决定了我们的代码量。

这让我们不禁展开延伸,如果COURSE中有100门科目,我们也需要傻乎乎地堆砌代码么?答案是否定的。在我们无法,或者懒于确定这些组别(如这里的语文,数学)时,我们可以采用创建自定义函数的方法来动态生成代码,现给出一个经典示例《行转列通用过程》http://topic.csdn.net/u/20100109/13/6a10c168-f190-4766-b838-adbf03c4ac7b.html?93286。

三,为什么行转列?

通过以上的阐述和示例,我们发现行转列实则对原表的一种转换,以达到从另外的角度来展示和分析数据。个人觉得在实际开发需求中其用途还是比较有限的,因为开发人员很多时候接触的都是些范式表,表定义都相当规范,数据结构也很合理。 而在数据仓库领域,在纷繁复杂的海量数据中的数据挖掘和报表开发,这种行列转换就大有可为了。

申明:欢迎大家一起学习交流,切勿盲从,博文中如有错误偏颇的观点或理解,还望指正!谢谢!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

Oracle行列转换问题总结

Oracle行列转换问题总结:如果要整理出Oracle版中的FAQs,我想其中一定少不了行转列问题。今天利用一些闲暇时候整理一下我的理解与心得。在展开我的总结之前,我反复思考这样的问题:什么是行转列?在何种情况下需要行转列? 一,什么是行转列? 观察了行转列前后的变化,可以诠释为
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top