首页 > 数据库 > Oracle > 正文

oracle怎样行列转置

WBOY
发布: 2022-01-25 10:55:55
原创
6531人浏览过
oracle行列转置的方法:1、利用pivot()函数行转列,语法为“pivot(聚合函数 for 列名 in(类型))”;2、利用unpivot()函数列转行,语法为“unpivot(列名 for 列名 in(类型))”。

oracle怎样行列转置

本教程操作环境: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 ( '语文', '数学', '英语' ) );
登录后复制

查询结果如下:

壁纸样机神器
壁纸样机神器

免费壁纸样机生成

壁纸样机神器 0
查看详情 壁纸样机神器

在这里插入图片描述
2、unpivot列转行

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

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

查询结果如下:

在这里插入图片描述

推荐教程:《Oracle视频教程

以上就是oracle怎样行列转置的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号