oracle中部门员工表经典查询

编程入门 行业动态 更新时间:2024-10-05 07:28:29

oracle中部门<a href=https://www.elefans.com/category/jswz/34/1767683.html style=员工表经典查询"/>

oracle中部门员工表经典查询


直接上代码


1.查询至少有一个员工的所有部门
select dname from dept where deptno in(select deptno from emp group by deptno having count(*)>1);

2.查询薪金比SMITH 的所有员工
select * from  EMP  where SAL > (select SAL from EMP where ENAME='SMITH')


3列出所有员工姓名以及其直接上司的姓名
select t1.ename,t2.ename from emp t1 left join emp t2 on t1.mgr=t2.empno;

4.列出所有员工中受雇日期早于其直接上级的姓名
select w.ename,w.hiredate,b.ename ,b.hiredate from emp w,emp b   where w.mgr=b.empno and w.hiredate>b.hiredate

5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门
select dname,emp.* from dept left join emp on dept.deptno=emp.deptno; 

6.列出所有CLERK的姓名及其部门名称
SELECT e.ename,d.dname from emp e join dept d on e.deptno=d.deptno  where e.job='CLERK'

7.查询所有薪金大于1500的各种工作
select job from emp where sal >1500 group by job


8.列出在部门“SALES”工作的员工的姓名,假定不知道该部门编号
select ename from emp where deptno=(select deptno from dept where dname='SALES')

9.列出所有薪金高于公司平均水平的员工
SELECT * from emp where SAL >(select AVG(SAL)  from emp )

10.列出所有于SCOTT相关工作的员工
 select * from emp where job in (select job from emp where ename ='SCOTT')


11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金
select ename,sal from emp where sal in(select sal from emp where deptno=30)

12.列出薪金高于部门30工作的所有员工的薪金的员工姓名和薪金
select * from emp where sal >(select max(sal) from emp where deptno=30)


13.列出每个部门工作的员工数量,平均工资和平均服务期限
select deptno,count(*) 员工人数,avg(a.sal) 平均工资,avg(sysdate-HIREDATE) 平均服务期限 from emp a group by deptno; 

14.列出所有员工的姓名,部门名称和工资

select  e.ename,d.dname,e.sal+nvl(em,0) as 工资   from emp e join dept d  on e.deptno=d.deptno 


15.列出所有部门的信息和部门人数
select * from dept a left join (select deptno,count(*) 部门人数 from emp group by deptno) b on a.deptno=b.deptno ;

16.列出各种工作的最低工资
select job,min(sal) from emp group by job
 

17列出各个部门的MANAGER的最低薪金

第一种;select min(sal) from emp where job in (  select job  from emp where  job='MANAGER')
第二种;select * from (select sal from emp where job='MANAGER') where   rownum<=1


18,列出所有员工的年工资,按年薪从低到高排序
select  job,ename, sal+nvl(comm,0) as 工资  from emp  order by 工资 
--NVL函数的功能是实现空值的转换,根据第一个表达式的值是否为空值来返回相应的列名或表达式,主要用于对数据列上的空值进行处理,

19.用一条sql语句查询出emp表中每个部门工资前三的数据
第一种

select deptno, ename, sal    from emp e1   where  
     (    select count(1)       from emp e2       where e2.deptno=e1.deptno and e2.sal>=e1.sal   ) <=3 /*这里的数值表示你想取前几名*/order by deptno, sal desc;  


第二种,每次手动改变里面的deptno的值
select * from (select sal,deptno as sal1 from emp where deptno=10) where  rownum<=3
 

更多推荐

oracle中部门员工表经典查询

本文发布于:2024-02-28 01:10:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1767327.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:员工   部门   经典   oracle

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!