大佬教程收集整理的这篇文章主要介绍了oracle行列转换,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
第一种是利用的decode,很普通的一种写法:
SELEct sname,sum(decode(course,'语文',score,0)) "语文",'数学',0)) "数学",'英语',0)) "英语" from score group by sname;
第二种是利用Oracle的一种函数pivot,是列转行。还有一个unpivot,是行转列
SELEct * from (SELEct sname,course,score from score)
pivot(
sum(score)
for course in(
'语文' as "语文",
'数学' as "数学",
'英语' as "英语"))
order by sname;
数据源:
Sname COURSE score
-------------------
Bill 语文 80
Bill 数学 90
Bill 英语 92
Jim 语文 78
Jim 数学 88
Jim 英语 98
两种方式结果对比:
Sname 语文 数学 英语
------------------------------
Bill 80 90 92
Jim 78 88 98
Sname 语文 数学 英语
-------------------------------
Bill 80 90 92
Jim 78 88 98
以上是大佬教程为你收集整理的oracle行列转换全部内容,希望文章能够帮你解决oracle行列转换所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。