• Oracle_子查询


    Oracle_子查询

    子查询  
    --如何查得所有比“CLARK”工资高的员工的信息
    select ename, sal from emp where ename = 'CLARK';
    select * from emp where sal>2450;
     
    select * 
    from emp
    where sal>(
          select sal
          from emp
          where ename='CLARK'
    );
     
     
    --查询工资高于平均工资的雇员名字和工资
    select ename, sal
    from emp
    where sal>(
          select avg(sal)
          from emp
    );
     
     
    --查询和SCOTT同一部门且比他工资低的雇员名字和工资
    select ename,sal
    from emp
    where deptno=(
          select deptno
          from emp
          where ename = 'SCOTT'
    ) and sal<(
          select sal
          from emp 
          where ename = 'SCOTT'
    )
     
    --查询工资最高的雇员名字和工资
    select ename, sal
    from emp 
    where sal=(
          select max(sal)
          from emp
    );  
    any/all/in
    --查询工资低于任何一个“CLERK”的工资的雇员信息。
    --any:与子查询结果的任意一条记录进行比较
    select *
    from emp
    where sal < any(
          select sal from emp where job='CLERK'
    );
     
    --查询工资比所有的“SALESMAN”都高的雇员的编号、名字和工资。
    --all:与子查询结果的所有记录进行比较
    select empno, ename, sal
    from emp
    where sal>all(
          select sal
          from emp
          where job='SALESMAN'
    )
     
    --查询部门20中职务同部门10的雇员一样的雇员信息。
    select * 
    from emp
    where job in(
          select job 
          from emp
          where deptno=10
    ) and deptno=20;  
    --查询在雇员中有那些人是有下属的
    sekect * 
    from emp
    where empno in(
          select distinct mgr 
          from emp
    );
     
    --找出部门编号为20的所有员工中收入最高的职员
    select * 
    from emp 
    where sal=(
          select max(sal)
          from emp 
          where deptno=20
    ) and deptno=20;
     
     
    --查询每个部门的平均薪水等级
    select deptno, avg(sal) from emp group by deptno;
     
     
    select temp.deptno, temp.avg_sal, s.grade
    from salgrade s, (
         select deptno, avg(sal) avg_sal
         from emp
         group by deptno
    ) temp
    where temp.avg_sal between s.losal and s.hisal;
     
     
    select temp.deptno, d.dname, temp.avg_sal, s.grade
    from salgrade s, (
         select deptno, avg(sal) avg_sal
         from emp
         group by deptno
    ) temp, dept d
    where temp.avg_sal between s.losal and s.hisal
    and temp.deptno = d.deptno;  
     
  • 相关阅读:
    token原理
    1.系统代码读取配置文件
    redis hash怎么用
    那么都数据库表,那么多不同记录。是怎样都存储在一个key-value数据库的?
    jedis操作redis全指南
    redis列表list
    jedis操作
    redis
    android raw与assets资源
    Zoie Merge Policy
  • 原文地址:https://www.cnblogs.com/haozhengfei/p/6538373.html
Copyright © 2020-2023  润新知