您的位置:首页 > 数据库 > Oracle

oracle 学习笔记 - 相关子查询

2017-08-19 19:57 549 查看

相关子查询的执行顺序

一般先执行子查询,再执行主查询;但相关子查询例外。

相关子查询的概念

SQL> --相关子查询:将主查询中的值 作为参数传递给子查询


具体使用

SQL> select empno,ename,sal,(select avg(sal) from emp where deptno=e.deptno) avgsal
2  from emp e
3  where sal > (select avg(sal) from emp where deptno=e.deptno);

EMPNO ENAME             SAL     AVGSAL
----------------------------------------------
7499 ALLEN            1600 1566.66667
7566 JONES            2975       2175
7698 BLAKE            2850 1566.66667
7788 SCOTT            3000       2175
7839 KING             5000 2916.66667
7902 FORD             3000       2175

-- 等价于下面的多表查询
select e.empno,e.ename,d.avgsal
from emp e,(select deptno,avg(sal) avgsal from emp group by deptno) d
where e.deptno = d.deptno and e.sal > d.avgsal;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql