Oracle行转列,pivot函数和unpivot函数
2024-10-19 16:33:00
pivot函数:行转列函数:
语法:pivot(任一聚合函数 for 需专列的值所在列名 in (需转为列名的值));
unpivot函数:列转行函数:
语法:unpivot(新增值所在列的列名 for 新增列转为行后所在列的列名 in (需转为行的列名));
执行原理:将pivot函数或unpivot函数接在查询结果集的后面。相当于对结果集进行处理。
转换示例:
1.原始表数据:
sql语句:select * from T_PIVOT_TEST_1 ;
2.用pivot函数进行行转列。其中用聚合函数对数据列进行求值,将th列中的值’COL_1‘,’COL_2‘,‘COL_3’转化为列名,并为其加上别名。
sql语句:select * from T_PIVOT_TEST_1
pivot (sum(er) for th in ('COL_1' as 第一列,'COL_2'as 第二列 ,'COL_3' as 第三列));
转换后结果图:
3.用nupivot函数进行列转行。在原sql语句上再加上unpivot函数,将列再转为行,在unpivot函数中,aa与bb为新增的列名,分别表示由列转换为行后的数据所在的列名和数据所在的列名。
sql语句:select * from T_PIVOT_TEST_1
pivot (sum(er) for th in ('COL_1' as 第一列,'COL_2'as 第二列 ,'COL_3' as 第三列))
unpivot ( aa for bb in(第一列,第二列,第三列));
转换后结果图:
最新文章
- 4.在MVC中使用仓储模式进行增删查改
- 如何在Node.js中合并两个复杂对象
- servlet过滤器使用
- tomcat日志文件定时清理备份
- Ubuntu 16.10下的eclipse
- Lua 之数据结构
- 斯坦福第七课:正则化(Regularization)
- 【HDU 4602】Partition
- 初学java之try-catch-finally语句的实例
- 小课堂Week10 例外处理设计的逆袭Part3
- python中yield用法
- tomcat初识
- bzoj1293: [SCOI2009]生日礼物
- 如何快速正确的安装 Ruby, Rails 运行环境-b
- [Android] createTrack_l
- C语言解析日志,存储数据到伯克利DB 2
- 13、Java菜单条、菜单、菜单项
- HDU 2689 Sort it【树状数组】
- 卸载office密钥的命令
- SQL学习指南第四篇
热门文章
- Bzoj3105:[CQOI2013]新Nim游戏
- autocomplete 属性 清除input框输入存留历史值,防止下拉历史值显示
- Web前端面试指导(十九):CSS样式-如何清除元素浮动?
- mongoDB BI 分析利器 - PostgreSQL FDW (MongoDB Connector for BI)
- 是否应该开启WebView硬件加速?
- 使用C3的一些新属性绘制谷歌浏览器的图标
- python itchat 微信开发
- C++ 类对象的初始化顺序 ZZ
- ubuntu桌面便签 sticky note, xpad
- Improving cache consistency redis和db的一致性维护