oracle十道子查询题

--1.查询每个部门薪水大于平均薪水的员工信息

select * from emp where sal>(select avg(sal) from emp);







--2.检索部门编号、部门名称、部门所在地及其每个部门的员工总数。

select d.deptno,dname,loc,c from dept d,(select count (*) c,deptno from emp group by deptno) e where d.deptno=e.deptno;



--3.检索30部门中1980年1月份之前入职的员工信息。显示:员工号、员工名、部门号,部门名、入职日期。

select empno,ename,emp.deptno,dname,hiredate from emp,dept where emp.deptno=dept.deptno and emp.hiredate<to_date('1985-11-02','YYYY-MM--DD');


--3.检索雇员的雇佣日期早于其经理雇佣日期的员工及其经理姓名。

select e1.ename,e2.ename from emp e1,emp e2 where e1.empno =e2.mgr and e1.hiredate>e2.hiredate;

select * from emp;

4.按部门号(deptno) 及 工资(sal)排序检索公司的员工信息(要求部门号从大到小 ,部门号相同的按工资由低到高),显示的字段为:员工号、员工名、工资、部门号。

select empno ,ename,sal,deptno from emp order by deptno desc,sal;



5.不同部门经理的最低工资。
 
select min(sal)  from (select * from emp  where empno in (select mgr from emp)) t group by t.deptno;




6.检索部门号及其本部门的最低工资。

select deptno,min(sal) from emp group by deptno;


7.检索从事clerk工作的员工姓名和所在部门名称。

select ename ,dname from emp,dept where emp.deptno=dept.deptno and  job='CLERK';


8.检索员工表emp中的第3条到第8条记录。显示emp表中的全部字段。
select * from(select rownum r,emp.* from  emp where rownum<=8) temp  where temp.r>3;

select * from emp;

9.查询 1980  1981  1982  1987  入职的员工人数   提示 使用 decode 函数

select count(*) "总人数",       
  sum(decode(to_char(hiredate,'yyyy'),'1980',1,0)) "1980",      
  sum(decode(to_char(hiredate,'yyyy'),'1981',1,0)) "1981",  
  sum(decode(to_char(hiredate,'yyyy'),'1982',1,0)) "1982",      
  sum(decode(to_char(hiredate,'yyyy'),'1987',1,0)) "1987" 
  from emp;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值