美文网首页
高级子查询

高级子查询

作者: 鲁斯侨 | 来源:发表于2017-12-17 11:39 被阅读0次

    查询比所在职位平均工资高的员工姓名,职位。

    select outertab.ename,outertab.job
    from emp outertab
    where outertab.sal>(select avg(sal)
                      from emp
                      where outertab.job=job)
    

    查询工资为其部门最低工资的员工编号,姓名,工资。

    select aa.empno,aa.ename,aa.sal
    from emp aa
    where aa.sal=(select min(sal)
                            from emp
                            where aa.deptno=deptno)
    
    

    查询哪些员工是经理

    select *
    from emp e
    where 0<(select count(empno)
                    from emp
                    where e.empno=mgr)
    

    查询所有雇员编号,名字和部门名字。

    select emp.deptno,emp.ename,(select dname
    from dept 
    where emp.deptno=deptno)
    from emp
    

    查询哪些员工不是经理。

    select *
    from emp e
    where 0=(select count(empno)
                    from emp
                    where e.empno=mgr)
    

    查询每个部门工资最低的两个员工编号,姓名,工资。

    select aa.empno,aa.ename,aa.job
    from emp aa
     where 1>=(select count(empno)
                       from emp
                       where aa.sal>sal 
                       and aa.deptno=deptno)
    

    列出至少有一个雇员的所有部门名称。

    select dname
    from dept
    where exist (select count(*)
    from emp 
    where dept.deptno=emp.deptno
    GROUP BY deptno
    having count(*)>=1)
    

    列出一个雇员都没有的所有部门名称。

    select d.dname 
    from dept d 
    where not exists(select count(*)
    from emp 
    where deptno=d.deptno 
    group by deptno 
    having count(*)>=1)
    

    查询薪水多于他所在部门平均薪水的雇员名字,部门号。

    select e.ename,e.deptno
    from emp e
    where sal >(select avg(sal)
                       from emp
                       where e.deptno=deptno)
    

    查询员工姓名和直接上级的名字。

    select e.ename, (select ename 
    from emp 
    where empno=e.mgr)
    from emp e
    

    查询每个部门工资最高的员工姓名,工资。

    select e.ename, e.sal 
    from emp e
    where e.sal in (select max(sal)
    from emp 
    where deptno=e.deptno 
    group by deptno )
    

    查询每个部门工资前两名高的员工姓名,工资。

    select e.ename,e.job
    from emp e
    where 2>(select count(empno) 
                    from emp
                    where e.deptno=deptno
                    and sal>e.sal)
    

    相关文章

      网友评论

          本文标题:高级子查询

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