美文网首页
高级子查询(相关子查询)

高级子查询(相关子查询)

作者: Mtllll | 来源:发表于2019-01-25 11:28 被阅读0次

(先看外部表,先选取外部表的第一行,用它的列与内部表的条件进行相连查询)
1.查询比所在职位平均工资高的员工姓名,职位

select ename,job
from emp b
where sal>(select avg(sal) from emp where EMP.DEPTNO
= b.DEPTNO)

2.查询每个部门工资最低/最高的两个员工姓名,编号,工资

select empno,ename,sal,DEPTNO
from EMP outerTab
where 1 >= (select count(*) from emp where EMP.sal < outerTab.sal and outerTab.DEPTNO = EMP.DEPTNO )
order by deptno,sal
select OUTERTAB.ename,OUTERTAB.sal,OUTERTAB.DEPTNO
FROM EMP outerTab -- 这个部门中工资第一高或者第二高的员工
where 1>= (select count(*) from emp where EMP.sal > outerTab.sal )
order by deptno,sal

3.查询哪些员工是经理

select *
from emp e
where (select count(empno) from emp p where p.mgr=e.EMPNO)>0
select ename from emp b
where b.empno  in 
(select mgr from emp where EMP.mgr = b.empno)(相关子查询)
select ename from emp where empno  in (select mgr from emp )(嵌套子查询)
select ename
from emp e
where exists(select 1 from emp p where p.mgr=e.empno)

4.查询哪些员工不是经理

select *
from emp e
where (select count(empno) from emp p where p.mgr=e.EMPNO)=0
select ename from emp b
where b.empno  not in 
(select mgr from emp where EMP.mgr = b.empno)(相关子查询)
select ename from emp where empno not  in (select nvl(mgr,100) from emp )(嵌套子查询)
select ename
from emp e
where not exists(select 1 from emp p where p.mgr=e.empno)

exsists和not exsists操作符
1.列出至少有一个雇员的所有部门名称

select dname 
from dept s
where  exists (select 1 from emp where EMP.DEPTNO=s.DEPTNO)

2.列出没有雇员的所有部门名称

select dname 
from dept s
where not exists (select 1 from emp where EMP.DEPTNO=s.DEPTNO)

相关文章

  • 高级子查询(相关子查询)

    (先看外部表,先选取外部表的第一行,用它的列与内部表的条件进行相连查询)1.查询比所在职位平均工资高的员工姓名,职...

  • 高级子查询(相关子查询)

    (先看外部表,先选取外部表的第一行,用它的列与内部表的条件进行相连查询)1.查询比所在职位平均工资高的员工姓名,职...

  • SQL课程相关知识

    相关子查询和非相关子查询 (1)非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部...

  • SQL相关子查询是什么?和嵌套子查询有什么区别?

    两者的各种叫法 相关子查询叫做:Correlated Subqueries 非相关子查询也叫普通子查询或嵌套子查询...

  • 2018-02-02

    警告:写操作pl/sql测试回滚影响条数 子查询非相关子查询 :先解析执行子查询中的语句,再执行外层语句相关子查询...

  • 数据分析之SQL子查询

    文章阅读路线: SQL子查询概念 独立子查询实例 相关子查询实例 SQL子查询常见玩伴 1.SQL子查询概念 子查...

  • SQL高级查询(四)

    T4 子查询的应用(二) 1.相关子查询 2.EXISTS查询(重点) 3.在DML语句中使用子查询(难点) --...

  • SQL查询_高级查询

    SQL查询_高级查询 一、子查询 子查询出现的位置一般为条件语句,oracle会先执行子查询,再执行父查询,子查询...

  • SELECT型相关子查询和独立子查询

    以上SQL, SELECT型子查询, 不管是相关子查询还是独立子查询, 在MySQL的8.0.25版本中都可以运行...

  • 2019-03-27 多列子查询、相关子查询

    了解 多列子查询 相关子查询

网友评论

      本文标题:高级子查询(相关子查询)

      本文链接:https://www.haomeiwen.com/subject/lnxzixtx.html