PLSQL_基础系列10_子查询WITH AS(案例)
2016-09-09 13:50
218 查看
一、摘要
使用WITH AS 语句可以为一个子查询语句块定义一个名称,使用这个子查询名称可以在查询语句的很多地方引用这个子查询。
Oracle 数据库像对待内联视图或临时表一样对待被引用的子查询名称,从而起到一定的优化作用。
WITH子句是9i新增语法。你可以在任何一个顶层的SELECT 语句以及几乎所有类型的子查询语句前,使用子查询定义子句。
被定义的子查询名称可以在主查询语句以及所有的子查询语句中引用,但未定义前不能引用。
WITH句中不能嵌套定义<也就是with子句中不能有WIT子句>,但子查询中出现H的“子查询定义”语句可以引用已定义的子查询名称,<可以引用前面已经定义的with子句>
二、使用案例
使用案例方法
使用WITH AS 语句可以为一个子查询语句块定义一个名称,使用这个子查询名称可以在查询语句的很多地方引用这个子查询。
Oracle 数据库像对待内联视图或临时表一样对待被引用的子查询名称,从而起到一定的优化作用。
WITH子句是9i新增语法。你可以在任何一个顶层的SELECT 语句以及几乎所有类型的子查询语句前,使用子查询定义子句。
被定义的子查询名称可以在主查询语句以及所有的子查询语句中引用,但未定义前不能引用。
WITH句中不能嵌套定义<也就是with子句中不能有WIT子句>,但子查询中出现H的“子查询定义”语句可以引用已定义的子查询名称,<可以引用前面已经定义的with子句>
二、使用案例
使用案例方法
select e.ename from emp e where e.deptno in (select d.deptno from dept d where d.deptno = 10); with a as (select e.ename, e.deptno from emp e) select a.ename from a where a.deptno in (with b as (select d.deptno from dept d where d.deptno = 10) select * from b ); with a as (select e.ename, e.deptno from emp e), b as (select d.deptno from dept d where d.deptno = 10) select a.ename from a where a.deptno in (select * from b);
相关文章推荐
- PLSQL_基础系列10_子查询WITH AS(案例)
- PLSQL_基础系列11_递归和层次查询CONNECT BY(案例)
- PLSQL_基础系列03_合并操作UNION / UNION ALL / MINUS / INTERSET(案例)
- PLSQL_基础系列09_时间戳记TIMESTAMP(案例)
- PLSQL_基础系列05_视图控制WITH CHECK OPTION(案例)
- PLSQL_基础系列07_插入方式Pivoting / Unconditional / Conditional ALL / Conditional FIRST INSERT(案例)
- PLSQL_基础系列08_操作符标LPAD / TRUNC / DECODE / TRIM / INSTR(案例)
- Java基础系列10:内存操作流,管道流,合并流,压缩流以及回退流
- [导入]构建WCF面向服务的应用程序系列课程(10):安全基础.zip(24.27 MB)
- (Mirage系列之五)Mirage经典案例之桌面驱动和基础层管理
- [转]Ultra Fractal教程系列10——学习基础技巧02——学习使用Switch模式
- Yii框架官方指南系列10——基础知识:组件
- 【10】了解Bootstrap栅格系统基础案例(5)
- C++基础知识面试精选100题系列(1-10题)[C++ basics]
- DBA_实践指南系列11_Oracle Erp R12性能调优基础(案例)
- DBA_实践指南系列10_Oracle Erp R12诊断功能Diagnostic(案例)
- PLSQL_案例优化系列_体会索引让SQL举步维艰的一面(案例6)
- 计算机基础知识扫盲系列10