• oracle---plsql---示例laobai


    select * from scott.emp;
    --1 列出emp表中各部门的部门号,最高工资,最低工资
        select deptno,max(sal),min(sal) from scott.emp group by deptno;
    
    
    2 列出emp表中各部门job为'CLERK'的员工的最低工资,最高工资
     select min(sal),max(sal) from scott.emp where job='CLERK'
    
    3 --对于emp中最低工资小于13000的部门,
    --列出job为'CLERK'的员工的 (部门号),最低工资,最高工资    
      select min(sal),max(sal) from scott.emp where job='CLERK' and deptno in
      (
        select deptno from scott.emp group by deptno having min(sal)<'13000'  
      )  
    
    4 根据部门号由高而低,工资有低而高列出每个员工的姓名,部门号,工资
    
    select ename,deptno,sal from scott.emp order by deptno desc,sal
      
    5列出'张三'所在部门中每个员工的姓名与部门号
      select ename,deptno from 
      scott.emp where deptno in
        (
         select deptno from scott.emp where ename='WARD'
         )
    
    
    6列出每个员工的姓名,工作,部门号,部门名
     select ename,job,scott.emp.deptno ,scott.dept.dname 
      from scott.emp  inner join scott.dept on scott.emp.deptno = scott.dept.deptno;
      
      
     select ename,job,scott.emp.deptno ,scott.dept.dname 
      from scott.emp , scott.dept where
       scott.emp.deptno = scott.dept.deptno;
    
    
    
    7列出emp中工作为'CLERK'的员工的姓名,工作,部门号,部门名
     select ename,job,scott.emp.deptno ,scott.dept.dname 
      from scott.emp , scott.dept 
      where
       scott.emp.deptno = scott.dept.deptno and job='CLERK';
    
    8 对于emp中有管理者的员工,列出姓名,管理者姓名(管理者外键为mgr)
     同表自关联。适合于设计多级菜单,多级种类。
    select s1.ename,s2.ename as 管理者 
    from
     (select * from scott.emp where mgr is not null) s1,scott.emp s2
     where s1.mgr = s2.empno;
    
    9对于dept表中,列出所有部门名,部门号,
    select * from 
    同时列出各部门工作为'CLERK'的员工名与工作
    select d.*,e.ename,e.job from scott.dept d  join 
     (select deptno,ename,job from scott.emp where job='CLERK') e
     on d.deptno = e.deptno;
    
    10 对于工资高于本部门平均水平的员工,列出部门号,姓名,工资,按部门号排序
      select deptno,ename,sal from scott.emp e
      where sal>(select avg(sal) from scott.emp where deptno = e.deptno)
      order by deptno;
      
      select deptno,avg(sal) from scott.emp group by deptno
      
    
    11 对于emp,列出各个部门中工资高于本部门平均水平的员工数和部门号,
    按部门号排序
      select  count(1) 员工数,deptno from 
      ( select deptno,ename,sal from scott.emp e
      where sal>(select avg(sal) from scott.emp where deptno = e.deptno)
      ) group by deptno order by deptno;
    
    
    
    12   对于emp中工资高于本部门平均水平,人数多与1人的,列出部门号,人数,按部门号排序
     select  count(1) 员工数,deptno from 
      ( select deptno,ename,sal from scott.emp e
      where sal>(select avg(sal) from scott.emp where deptno = e.deptno)
      ) group by deptno having count(1)>1 order by deptno;
    
    
    
    
    13 对于emp中低于自己工资至少5人的员工,列出其部门号,姓名,工资,
    [以及工资少于自己的人数]
     --找出有比自己工资少的人
    select t.*  from
    (  
    select deptno,ename,sal,empno from scott.emp 
      where sal not in
      (
        select  sal from (
       select distinct(sal) ,rownum r from scott.emp  order by  sal )
        where r<6
        )
     ) t ,scott.emp where scott.emp.sal<t.sal;
     
     
        select a.deptno,a.ename,a.sal,(select count(b.ename) from
        emp as b where b.sal<a.sal) as 人数 from scott.emp as a
        where (select count(b.ename) from emp as b where b.sal<a.sal)>5
       
     
    

      

  • 相关阅读:
    从数据库表中查询日期最新的记录
    ArcGIS js api开发环境配置
    HRESULT:0x80070057 (E_INVALIDARG)
    ArcGIS js api三种查询功能
    sql设置字段默认值
    文件后缀与mime类型对应表
    关于dojo自定义类
    android用户登录验证
    java实现QQ互联登录
    springboot实现网站微信扫码登录
  • 原文地址:https://www.cnblogs.com/ipetergo/p/6255816.html
Copyright © 2020-2023  润新知