oracle unpivot 索引_oracle 11g 行列转换之unpivot、pivot
一、 列 转 行
create table STU_ROW2COL
(
id VARCHAR2(10),
intname VARCHAR2(10),
subject VARCHAR2(20),
grade NUMBER
)
insert into stu_row2col (ID, INTNAME, SUBJECT, GRADE) values ('1', 'ZORRO', '语文', 70);
insert into stu_row2col (ID, INTNAME, SUBJECT, GRADE) values ('2', 'ZORRO', '数学', 80);
insert into stu_row2col (ID, INTNAME, SUBJECT, GRADE) values ('3', 'ZORRO', '英语', 75);
insert into stu_row2col (ID, INTNAME, SUBJECT, GRADE) values ('4', 'SEKER', '语文', 65);
insert into stu_row2col (ID, INTNAME, SUBJECT, GRADE) values ('5', 'SEKER', '数学', 75);
insert into stu_row2col (ID, INTNAME, SUBJECT, GRADE) values ('6', 'SEKER', '英语', 60);
insert into stu_row2col (ID, INTNAME, SUBJECT, GRADE) values ('7', 'BLUES', '语文', 60);
insert into stu_row2col (ID, INTNAME, SUBJECT, GRADE) values ('8', 'BLUES', '数学', 90);
insert into stu_row2col (ID, INTNAME, SUBJECT, GRADE) values ('9', 'PG', '数学', 80);
insert into stu_row2col (ID, INTNAME, SUBJECT, GRADE) values ('10', 'PG', '英语', 90);
SQL> select t.* from stu_row2col t ;
ID INTNAME SUBJECT GRADE
---------- ---------- -------------------- ----------
11 ZORRO 语文 77
1 ZORRO 语文 70
2 ZORRO 数学 80
3 ZORRO 英语 75
4 SEKER 语文 65
5 SEKER 数学 75
6 SEKER 英语 60
7 BLUES 语文 60
8 BLUES 数学 90
9 PG 数学 80
10 PG 英语 90
想要实现行专列, 就是输出结果是这样的:
SQL> select * from ( select t.intname,t.subject,t.grade from stu_row2col t)
pivot(sum(grade) for subject in ('语文' 语文,'数学' 数学,'英语' 英语)) ;
INTNAME 语文 数学 英语
---------- ---------- ---------- ----------
SEKER 65 75 60
BLUES 60 90
PG 80 90
ZORRO 147 80 75
二、 行 转 列
创建一个视图:
create or replace view stu_col2row as
select "INTNAME","语文","数学","英语" from ( select t.intname,t.subject,t.grade from stu_row2col t) pivot(sum(grade) for subject in ('语文' 语文,'数学' 数学,'英语' 英语));
SQL> select INTNAME 姓名,km 科目, fs 分数 from stu_col2row unpivot(fs for km in(语文,数学,英语));
姓名 科目 分数
---------- ---- ----------
SEKER 语文 65
SEKER 数学 75
SEKER 英语 60
BLUES 语文 60
BLUES 数学 90
PG 数学 80
PG 英语 90
ZORRO 语文 70
ZORRO 数学 80
ZORRO 英语 75
oracle unpivot 索引_oracle 11g 行列转换之unpivot、pivot相关推荐
- oracle unpivot 索引_oracle 11g中的pivot和unpivot转换操作
对于pivot和unpivot这个Oracle 11g的新功能一直就想总结一下,正好赶上论坛中有很多人会提问相关的问题,于是利用空闲时间翻译了一篇相关的网络文章.链接如下: ITPuber:Luise ...
- oracle unpivot 索引_Oracle 行转列pivot 、列转行unpivot 的Sql语句总结
这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_user select id||username str from ap ...
- oracle unpivot 索引_oracle pivot 和 unpivot 函数的使用
pivot的格式 select from ( inner_query) pivot(aggreate_function for pivot_column in ( list of values)) o ...
- oracle in 索引_Oracle 性能优化总结
作者 | 帅性而为1号 出处 : https://blog.csdn.net/zhushuai1221/article/details/51740846 网上关于SQL优化的教程很多,但是比较杂乱.近 ...
- rono在oracle的作用_Oracle 11g各种服务作用以及哪些需要开启
Windwos server 2012 R2上成功安装Oracle 11g后共有7个服务,如果全局数据库名为orcl,则Oracle服务分别为 Oracle ORCL VSSWriter Servic ...
- oracle 手机客户端_Oracle 11g客户端
Oracle 11g客户端是一款非常专业的数据库软件,它可以帮助企业管理企业信息.更深入地洞察业务状况并迅速自信地做出调整以适应不断变化的竞争环境.所以有需要的用户欢迎在WWW.11684.COM 下 ...
- oracle split去逗号,行列转换 转载
1.针对 '1','2','3','4','5'(逗号在字符串外面) [sql] view plaincopyprint? SQL> SELECT COLUMN_VALUE FROMTABL ...
- 用ORACLE分析函数实现行列转换
摘 要 对数据库中的数据用SQL实现行列转换,不但需要编写复杂的程序代码,还需要编写存储过程.若引入ORACLE中的分析函数则会使该过程简便很多.首先找出表中所有关键字的属性个数的最大值,设为n,其次 ...
- oracle非常量不能用于privot_Oracle 行列转换函数pivot、unpivot的使用(二)
一.行转列pivot 关键函数pivot,其用法如下 pivot(聚合函数 for 列名 in(类型)) select * from table_name pivot(max(column_name) ...
最新文章
- enterText与typeText
- 李丽娟c语言第四版教师书_来,把自学C语言经历的那些苦,都踩在脚下
- iOS实现自定义的弹出视图(popView)
- shell swt 样式_swt shell设置窗口位于屏幕中间
- [GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题
- HDU 4283 You Are the One
- ajax技术怎么应用程序,利用AJAX技术开发应用程序.pdf
- 最小生成树(hdu1233还是畅通工程)
- 爬虫养成记 - urllib2的调试和错误处理
- 敏捷转型历程 - Sprint3 一团糟的演示会
- 定义工作,解读自我——IT帮2019年2月线下活动回顾
- 智能优化算法:人工电场优化算法-附代码
- 在小程序中如何使用svg图标
- 群晖服务器创建文件夹,群晖Synology 创建共享文件夹视频图文教程
- 如何评价光伏电站的运维能力
- 小学期破防:BIT计科大二小学期的个人见解以及建议
- 没有基于鸿蒙系统的app吗,华为鸿蒙操作系统为什么没有应用到手机?
- 把笔记本改造成无线路由器 —— 手机抓包牛刀小试
- 第25届ccf-csp认证赛后
- HDOJ 2545 树上战争
热门文章
- Dell XP版本在非Dell机子上的激活问题
- 《Sibelius 脚本程序设计》连载(五) - 1.2 编辑第一个插件
- DWR的学习文档(Hello World,类型转换,Spring,Annotation)
- mysql存储过程报错_MySQL存储过程错误No data - zero rows fetched, selected, or processed
- centos6 进入命令行_CentOS 6.x误删libc.so.6,紧急恢复
- [蓝桥杯][算法提高VIP]贪吃的大嘴(多重背包)
- oracle sql序列,SQL server 和Oracle 序列
- 报数退圈问题(C语言)
- aircv 安装_Python 通过截图匹配原图中的位置(opencv)实例
- mysql c 更新 数据_Mysql:如果数据存在则更新,不存在则插入