oracle 子查询因子化 with as
来源:互联网 发布:java field是什么 编辑:程序博客网 时间:2024/05/16 14:31
使用SCOTT/TIGER登录。
SQL:
WITH TB_DEPT_COUNT AS (SELECT DEPTNO, SUM(SAL) FROM EMP GROUP BY DEPTNO) SELECT * FROM TB_DEPT_COUNT;
结果:
查看所有的表:
表TB_DEPT_COUNT,相当于临时表。
使用with as能简化SQL。
不使用WITH AS:
SELECT e.ename AS employee_name, dc1.dept_count AS emp_dept_count, m.ename AS manager_name, dc2.dept_count AS mgr_dept_countFROM emp e, (SELECT deptno, COUNT(*) AS dept_count FROM emp GROUP BY deptno) dc1, emp m, (SELECT deptno, COUNT(*) AS dept_count FROM emp GROUP BY deptno) dc2WHERE e.deptno = dc1.deptnoAND e.mgr = m.empnoAND m.deptno = dc2.deptno;
上面的子查询都是:
SELECT deptno, COUNT(*) AS dept_count FROM emp GROUP BY deptno
使用WITH AS:
WITH dept_count AS ( SELECT deptno, COUNT(*) AS dept_count FROM emp GROUP BY deptno)SELECT e.ename AS employee_name, dc1.dept_count AS emp_dept_count, m.ename AS manager_name, dc2.dept_count AS mgr_dept_countFROM emp e, dept_count dc1, emp m, dept_count dc2WHERE e.deptno = dc1.deptnoAND e.mgr = m.empnoAND m.deptno = dc2.deptno;
就可以简化SQL了。
创建表:
CREATE TABLE EMP1 AS WITH TEMP_EMP AS (SELECT ROWNUM RN, E.* FROM EMP E) SELECT * FROM TEMP_EMP WHERE RN BETWEEN 4 AND 10;
结果:
0 0
- oracle 子查询因子化 with as
- 子查询因子化-WITH AS
- 使用子查询因子化(with..as)创建表
- oracle 子查询因子化 浅谈(with的使用)
- oracle with as子查询用法
- WITH AS 子查询
- with as (子查询)
- oracle递归子查询因子化
- 9.11 子查询因子化
- Oracle中的with as的查询
- Oracle 使用 with as 优化重复查询
- connect by 递归子查询因子化
- PLSQL==>子查询因子化
- 递归子查询因子化-CONNECT BY
- Oracle SQL高级编程——子查询因子化全解析
- 子查询定义从句总结(WITH AS 语句)
- SQL 语句递归查询 With AS 查找 所有 子节点
- SQL 语句递归查询 With AS 查找所有子节点
- AWS 8周年,收入超四主要对手之和
- Unity3D中的Shader
- 黑马程序员--外部类和内部类。(-)
- 【OpenCV入门教程之二】 一览众山小:OpenCV 2.4.8组件结构全解析
- Pythonxy Spyder Errors
- oracle 子查询因子化 with as
- js-ajax实例
- SEO优化步骤
- YII中如何按指定条件显示actionadmin的内容
- 学习步骤
- 转载]施一公:如何提高英文的科研写作能力
- socket通信传递中文出现乱码
- Android基础知识总结
- POJ 2750 环上线段树 略带DP 的线段树