SQL查询和优化(八)
来源:互联网 发布:产品经理数据来源 编辑:程序博客网 时间:2024/06/07 16:58
列转行
测试数据如下:DROP TABLE TEST PURGE;CREATE TABLE test ASSELECT * FROM (SELECT deptno,sal FROM emp) POVIT ( COUNT(*) AS ct,SUM(sal) AS s FOR deptno IN(10 AS deptno_10, 20 AS deptno_20, 30 AS deptno_30) )
要求把三个部门的“人次”转为一列显示。以前可用UNION ALL 来写SELECT '10' AS 部门编码,DEPTNO_10_CT AS 人次 FROM test UNION ALLSELECT '20' AS 部门编码,DEPTNO_10_CT AS 人次 FROM test UNION ALLSELECT '30' AS 部门编码,DEPTNO_10_CT AS 人次 FROM test
用UNPIVOT就比较简单,语法如下:SELECT .... FROM <table-expr> UNPIVOT [include nulls|exclude nulls] ( (<column>) FOR <pivot-column> IN (<value1>, <value2>,..., <valuen>) ) AS <alias> WHERE ..... 实例:SELECT * FROM test UPIVOT(人次 FOR deptno IN(deptno_10_CT,deptno_20_CT,deptno_30_CT));
将结果集反向转置为一列
SELECT emps FROM (SELECT ename,job,to_char(sal) AS sal, null AS T_COL) UNPOVIT INCLUDE NULLS (emps FOR COL IN (ename,job,sal,T_COL));EMPS________CLARKMANAGER2450KINGPRESIDENT5000MILLER CLERK1300 已选择12行
选自《Oracle 查询优化改写技巧与案例》 有教无类 落落 著
阅读全文
0 0
- SQL查询和优化(八)
- SQL优化和查询(十七)
- 查询优化【SQL优化】
- SQL查询和优化(一)
- SQL查询和优化(二)
- SQL查询和优化(三)
- SQL查询和优化(四)
- SQL查询和优化(五)
- SQL查询和优化(六)
- SQL 查询和优化(七)
- SQL查询和优化(九)
- SQL查询和优化(十)
- SQL查询和优化(十一)
- SQL查询和优化(十二)
- SQL查询和优化(十三)
- SQL查询和优化(十五)
- SQL优化和查询(十六)
- 18 SQL优化--查询优化
- 练习9
- Could not resolve view with name 'sys/menu/user' in servlet with name 'dispatcher'
- 间接修改Python字符串元素的三种方法
- Subllime Text3 如何设置Tab键自动转换为空格?
- hdu4185 二分图之最大匹配
- SQL查询和优化(八)
- [Python]深拷贝效率
- Python判断文件是否存在的三种方法
- API学习包装类Long
- java设计模式--工厂模式
- C
- 数据库连接的代码
- Android CTS测试
- SSL2670 2017年8月8日提高组T1 作业(堆+qsort)