【Oracle】学习笔记之pivot函数使用
废话不多说,先看行转列效果图,列转行就是图片顺序反过来
1、行转列
创建一个表
create table A_BANK
(NAME VARCHAR2(100),BANK VARCHAR2(50),MONEY NUMBER
)
插入几条数据
insert into A_BANK values ('jack','icbc',8800);
insert into A_BANK values ('jack','boc',9900);
insert into A_BANK values ('lucy','icbc',10);
insert into A_BANK values ('lucy','boc',69000);
insert into A_BANK values ('jack','abc',7700);
insert into A_BANK values ('lucy','abc',4);
结果如 表1 所示
NAME | BANK | MONEY |
---|---|---|
jack | icbc | 8800 |
jack | boc | 9900 |
lucy | icbc | 10 |
lucy | boc | 6900 |
jack | abc | 7700 |
lucy | abc | 4 |
表1
通过pivot函数转换成以下格式
select t.*,(t.icbc + t.boc + t.abc) as total
from (select *from A_BANK pivot ( max(money) for bank in ('icbc' as icbc , 'boc' as boc, 'abc' as abc) )) t;
结果如 表2 所示
bank | icbc | boc | abc | total |
---|---|---|---|---|
jack | 8800 | 9900 | 7700 | 26400 |
lucy | 10 | 69000 | 4 | 69014 |
表2
2、列转行
也可以通过unpivot函数回转成表1格式,首先我们根据上面的结果创建另外一张表
create table B_BANK as select t.*,(t.icbc + t.boc + t.abc) as total
from (select *from A_BANK pivot ( max(money) for bank in ('icbc' as icbc , 'boc' as boc, 'abc' as abc) )) t;
然后对新表进行列转行操作
select name,bank,money from B_BANK unpivot (money for bank in (icbc, boc, abc));
结果如 表3 所示
NAME | BANK | MONEY |
---|---|---|
jack | icbc | 8800 |
jack | boc | 9900 |
jack | abc | 7700 |
lucy | icbc | 10 |
lucy | boc | 6900 |
lucy | abc | 4 |
表3
3、参考博文
Oracle 行列转换函数pivot、unpivot的使用(二)
【Oracle】学习笔记之pivot函数使用相关推荐
- 在大量数据迁移期间oracle学习笔记
在数据迁移期间oracle学习笔记 0主键(自增) 1用户代码 2区域代码 3承保公司代码 4理赔编码 5投保确认码 6案件状态 7案件进展 8重开案件进展 9转换后案件状态 需求分析: 1.根据上述 ...
- Hive学习笔记三之函数操作
文章目录 5 函数 5.1 系统内置函数 5.2 常用内置函数 5.2.1 空字段赋值 5.2.2 CASE WHEN THEN ELSE END(类似于java中的switch case) 5.2. ...
- oracle update单引号,Oracle学习笔记:update的字段中包括单引号
平时update的时候直接更改字段内的值,例如: update table_temp set name = 'Hider' where id = 100; 但更新后的值中包括单引号,则不能按以上方式进 ...
- c++学习笔记内联函数,函数重载,默认参数
c++学习笔记内联函数,函数重载,默认参数 1 inline内联函数 C++中的const常量可以替代宏常数定义,如: const int A = 3; #define A 3 C++中是否有解决 ...
- c语言中void arrout,c语言学习笔记(数组、函数
<c语言学习笔记(数组.函数>由会员分享,可在线阅读,更多相关<c语言学习笔记(数组.函数(53页珍藏版)>请在人人文库网上搜索. 1.数组2010-3-29 22:40一维数 ...
- oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型
oracle学习笔记:循环.光标.异常 文章目录 打印Hello World 定义基本变量 引用型变量(单行)` my_name emp.ename%type ` 记录型变量(多行) `emp_rec ...
- IOS学习笔记07---C语言函数-scanf函数
2013/8/7 IOS学习笔记07---C语言函数-scanf函数 ------------------------------ qq交流群:创梦技术交流群:251572072 ...
- IOS学习笔记07---C语言函数-printf函数
IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...
- IOS学习笔记06---C语言函数
IOS学习笔记06---C语言函数 -------------------------------------------- qq交流群:创梦技术交流群:251572072 ...
最新文章
- 王坚十年前的坚持,才有了今天世界顶级大数据计算平台MaxCompute...
- 合肥天鹅湖万达广场机器人_万达王健林再考察合肥!瞄准政务、高新,年末合肥楼市出现区域分化!...
- 解决MariaDB无法远程连接
- idea创建包怎么让包分层_开一家早餐店卖生煎包怎么样
- 六年级计算机应用计划,2017六年级信息技术下册教学计划
- 构建可靠系统的原则与实践
- urllib2.URLError: urlopen error [Errno 111] Connection refused
- jquery-幻灯片的移动分析
- centos5.5 下面 lnmp环境遇到的小问题
- 调研报告|在线语音识别改进之 RNN-T 训练
- 机器博弈 (三) 虚拟遗憾最小化算法
- 零基础自学SQL课程 | SQL中的日期函数大全
- 笔记本电脑网卡驱动损坏问题
- IDEA安装Gitee插件
- tbase 之一 github setup
- 统计学——单因素方差分析
- 全景图拍摄设备有哪些?全景图拍摄方法
- python调用foxmail 发邮件_foxmail 收取已发送邮件
- (附源码)ssm小程序 实验室安全管理系统 毕业设计 031527
- 【Python基础】对象的浅拷贝与深拷贝