首页数据库Oracle数据库行列转置的方法是什么

Oracle数据库行列转置的方法是什么

时间2024-03-22 19:26:03发布访客分类数据库浏览895
导读:这篇文章主要给大家介绍“Oracle数据库行列转置的方法是什么”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“Oracle数据库行列转置的方法是什么”文章能对大家有所帮助。...
这篇文章主要给大家介绍“Oracle数据库行列转置的方法是什么”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“Oracle数据库行列转置的方法是什么”文章能对大家有所帮助。
 

oracle行列转置的方法:1、利用pivot()函数行转列,语法为“pivot(聚合函数 for 列名 in(类型))”;2、利用unpivot()函数列转行,语法为“unpivot(列名 for 列名 in(类型))”。

本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。

oracle怎样行列转置

以前接触过通用SQL中的行列转置,行转列使用聚合函数sum | max 然后结合case when then else end 语句就可以实现,而列转行使用union或union all来实现。这样做其实有点麻烦,而在oracle数据中,专门提供了这样的函数来实现行列转置功能。

同样可以使用通用SQL来实现行列转置,但是Oracle提供了专门的函数来处理行列转置,也就是使用pivot函数和unpivot函数,下面进行介绍。

1、pivot行转列

oracle数据库中提供pivot函数来实现行转列的功能,同样实现上面行转列的效果,SQL也可以这样写:

SELECT NAME AS
	姓名,
	"'语文'",
	"'数学'",
	"'英语'" FROM
	stu_score pivot ( max( score ) FOR SUBJECT IN ( '语文', '数学', '英语' ) );
    

查询结果如下:


2、unpivot列转行

oracle中提供unpivot函数来实现列转行功能,实现同样的效果,SQL也可以这样写:

SELECT NAME AS
	姓名,
	月份,工资 
FROM
	e_sal unpivot ( 工资 FOR 月份 IN ( M_1, M_2, M_3, M_4 ) );
    

查询结果如下:


感谢各位的阅读,以上就是“Oracle数据库行列转置的方法是什么”的内容了,通过以上内容的阐述,相信大家对Oracle数据库行列转置的方法是什么已经有了进一步的了解,如果想要了解更多相关的内容,欢迎关注网络,网络将为大家推送更多相关知识点的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Oracle数据库行列转置的方法是什么
本文地址: https://pptw.com/jishu/650828.html
Yii中redis集合怎么使用,常用集合处理命令有哪些 用PHP生成短网址的原理及详细方法是什么

游客 回复需填写必要信息