ORACLE中一个简单的PIVOT例子

Oracle 11g的一个新特性

这个例子很简单,仅想通过下面的例子说明PIVOT的用法

【第一步 建测试表,姑且把这个叫做“表”,只是为了演示方便】

代码如下:

SELECT 10 * 2 AS A, 5 + 2 AS B, 'Domingo' AS C, ROWNUM AS RN
  FROM DUAL
CONNECT BY ROWNUM < 5;

执行结果如下,之后所有的操作都依赖于下面的这个“表”


【第二步 演示开始,分别对下面First,Second的SQL语句执行】

◆First

WITH TMP AS(
  SELECT 10 * 2 AS A, 5 + 2 AS B, 'Domingo' AS C
    FROM DUAL
  CONNECT BY ROWNUM < 5)
    SELECT * FROM TMP;

 

Result

◆Second

WITH TMP AS(
  SELECT 10 * 2 AS A, 5 + 2 AS B, 'Domingo' AS C
    FROM DUAL
  CONNECT BY ROWNUM < 5)
    SELECT * FROM TMP PIVOT(SUM(A) FOR B IN (7 AS ER,8 AS BR,9 AS TS));

 

Result

 

【体会】

◆Second的代码中,加入了PIVOT关键字,翻译一下 PIVOT(SUM(A) FOR B IN (7 AS ER,8 AS BR,9 AS TS))

对所有B列值为"7"的所有的A行求和。需要注意的是,PIVOT中一定会用到聚集函数,FOR和IN也是使用PIVOT中的关键字。

 

更多的资料也可参考

http://www.oracle.com/technetwork/cn/articles/11g-pivot-101924-zhs.html

 

 


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值