废话不多说,先看行转列效果图,列转行就是图片顺序反过来

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函数使用相关推荐

  1. 在大量数据迁移期间oracle学习笔记

    在数据迁移期间oracle学习笔记 0主键(自增) 1用户代码 2区域代码 3承保公司代码 4理赔编码 5投保确认码 6案件状态 7案件进展 8重开案件进展 9转换后案件状态 需求分析: 1.根据上述 ...

  2. Hive学习笔记三之函数操作

    文章目录 5 函数 5.1 系统内置函数 5.2 常用内置函数 5.2.1 空字段赋值 5.2.2 CASE WHEN THEN ELSE END(类似于java中的switch case) 5.2. ...

  3. oracle update单引号,Oracle学习笔记:update的字段中包括单引号

    平时update的时候直接更改字段内的值,例如: update table_temp set name = 'Hider' where id = 100; 但更新后的值中包括单引号,则不能按以上方式进 ...

  4. c++学习笔记内联函数,函数重载,默认参数

    c++学习笔记内联函数,函数重载,默认参数 1 inline内联函数 C++中的const常量可以替代宏常数定义,如: const int A = 3;  #define A 3 C++中是否有解决 ...

  5. c语言中void arrout,c语言学习笔记(数组、函数

    <c语言学习笔记(数组.函数>由会员分享,可在线阅读,更多相关<c语言学习笔记(数组.函数(53页珍藏版)>请在人人文库网上搜索. 1.数组2010-3-29 22:40一维数 ...

  6. oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型

    oracle学习笔记:循环.光标.异常 文章目录 打印Hello World 定义基本变量 引用型变量(单行)` my_name emp.ename%type ` 记录型变量(多行) `emp_rec ...

  7. IOS学习笔记07---C语言函数-scanf函数

    2013/8/7 IOS学习笔记07---C语言函数-scanf函数 ------------------------------ qq交流群:创梦技术交流群:251572072            ...

  8. IOS学习笔记07---C语言函数-printf函数

    IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...

  9. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

最新文章

  1. 王坚十年前的坚持,才有了今天世界顶级大数据计算平台MaxCompute...
  2. 合肥天鹅湖万达广场机器人_万达王健林再考察合肥!瞄准政务、高新,年末合肥楼市出现区域分化!...
  3. 解决MariaDB无法远程连接
  4. idea创建包怎么让包分层_开一家早餐店卖生煎包怎么样
  5. 六年级计算机应用计划,2017六年级信息技术下册教学计划
  6. 构建可靠系统的原则与实践
  7. urllib2.URLError: urlopen error [Errno 111] Connection refused
  8. jquery-幻灯片的移动分析
  9. centos5.5 下面 lnmp环境遇到的小问题
  10. 调研报告|在线语音识别改进之 RNN-T 训练
  11. 机器博弈 (三) 虚拟遗憾最小化算法
  12. 零基础自学SQL课程 | SQL中的日期函数大全
  13. 笔记本电脑网卡驱动损坏问题
  14. IDEA安装Gitee插件
  15. tbase 之一 github setup
  16. 统计学——单因素方差分析
  17. 全景图拍摄设备有哪些?全景图拍摄方法
  18. python调用foxmail 发邮件_foxmail 收取已发送邮件
  19. (附源码)ssm小程序 实验室安全管理系统 毕业设计 031527
  20. 【Python基础】对象的浅拷贝与深拷贝

热门文章

  1. 如何用纯文本生成漂亮的表格?
  2. TCP长连接在k8s中基于nginx负载均衡
  3. 数字IC设计流程(1)
  4. 华为eNSP的基于MAC地址划分VLAN
  5. 一种最简便的趋势交易法则——四周规则(海龟简单版)
  6. dofilter在java中_java – doFilter没有被调用
  7. log4j 的additivity属性
  8. java的crypt_JAVA实现PHP的crypt函数
  9. mysql 主主同步失败_MySQL 主主复制失败问题
  10. 苹果应用商店审核指南中文