oracle select 查询小练习

一、

目录

一、


  1. 显示在1981-5-1到1982-12-31之间聘用的员工的姓名、工作,并按聘用日期对查询进行升序排序。

答案:

select ename,job from emp where hiredate between to_date('1981-05-01','yyyy-mm-dd') and to_date('1982-12-31','yyyy-mm-dd') order by hiredate asc;
  1. 按姓名的字母顺序降序显示部门10和30中的所有的员工的姓名和部门编号。

答案:

select ename,deptno from emp where deptno in (10,30) order by ename desc;
  1. 显示员工姓名中第三个字母为”A”的员工信息;

答案:select * from emp where ename like '__A%';

  1. 显示员工姓名中有”A”和”C”的员工的信息。

答案:select * from emp where ename like '%A%' and ename like '%C%'

  1. 显示工作为销售员或经理且工资不等于1500和2450的员工的姓名、工作和工资。

答案:

select ename,job,sal from emp where job='SALESMAN' or job='MANAGER' and sal!=1500 and sal!=2450;

  1. 显示提成比工资的一半多的员工的信息。

答案:select * from emp where sal/2<nvl(comm,0);

附:

  1. 查询第二行到第三行员工的信息。

答案:select * from (select rownum "行",ename,sal,empno,job,mgr,hiredate,comm,deptno from emp where rownum<=3)where "行">=2;

  1.  按姓氏升序查找员工,显示员工的姓名,名称,工作。

答案:select rownum,ename,job,sal from (select * from emp order by ename asc);

二、

  1. 求出部门平均薪水大于2000的部门编号

答案: select deptno,avg(sal) from emp

       group by deptno

       having avg(sal)>2000;

  1. 求出部门中人数在3个以上的部门的人数及总工资

答案:select deptno,sum(sal),count(*) from emp

       group by deptno

       having count(*)>3;

  1.  求出部门中在1981年以后入职的总人数及其平均工资在2000元以上的部门的人数、平均工资和部门编号。

答案:select count(*),avg(sal),deptno from emp

       where hiredate>to_date('1981-12-30','yyyy-mm-dd')

       group by deptno

       having avg(sal)>2000;

  1. 找出部门中最高薪水在3000元以上的部门编号及该部门的平均薪水。

答案:select deptno,avg(sal) from emp

       group by deptno

       having max(sal)>3000;

  1. 显示平均薪水最高的部门的编号及薪水值

答案:select deptno,avg(sal) from emp

       group by deptno   

       having avg(sal)=(select max(avgsal) maxsal from

(select deptno,avg(sal) avgsal from emp

       group by deptno))

  1. 从emp表中取出所有薪水值大于1200员的雇员,并按部门分组,然后求出该部门的平均薪水,再显示出该部门的平均薪水大于2000的部门,最后按降序排列;

答案:select deptno,avg(sal) from emp

       where sal>1200

       group by deptno

       having avg(sal)>2000

       order by avg(sal) desc

  1. 根据雇员的工资,求出雇员的工资等级

答案:select ename,sal,grade from emp,salgrade

       where sal between losal and hisal

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值