ORACLE数据库测试题(二)

1.找出奖金高于薪水60%的员工信息。
Select * from emp where comm>sal*0.6;
2.统计各部门的薪水总和。
select deptno as 部门编号,sum(sal) as 薪资总和 from emp group by deptno;
select e.deptno as 部门编号,d.dname as 部门名称, sum(sal) as 薪水总和 from emp e join dept d on e.deptno = d.deptno group by e.deptno,d.dname;
3.列出各个部门的MANAGER(经理)的最低薪水。
select deptno as 部门编号,min(sal) as 经理最低薪水 from emp where job='MANAGER' group by deptno;
4.显示所有员工的姓名,首字母大写。
select initcap(ename) as 员工姓名 from emp;
5.显示正好为5个字符的员工的姓名。
select ename from emp where length(ename)=5;
6.显示不带有“R”的员工姓名。
select ename 员工姓名 from emp where ename not like '%R%';
7.显示所有员工的姓名以及工作10年后的日期。
select ename 员工姓名,add_months(hiredate,10*12) 员工工作10年后的时间 from emp;
8.显示员工的详细资料,按姓名排序。
select * from emp order by ename;
9.显示员工姓名,根据其服务年限,将最老的员工排在最前面。
select ename,hiredate from emp order by hiredate;
10.列出按年薪排序的所有员工的年薪。
select ename,job,(sal+nvl(comm,0))*12 年薪 from emp order by sal;
11.列出最低薪水大于1500的各种工作。
select job from emp group by job having min(sal)> 1500;
12.找出在(任何年份的)2月受聘的所有员工。
select ename from emp where to_char(hiredate,'mm')=2;
13.对于每个员工,显示其加入公司的天数。
select (sysdate-hiredate) 天数 from emp;
14.列出薪水比“SMITH”多的所有员工。
select ename from emp where sal>(select sal from emp where ename='SMITH');

猜你喜欢

转载自blog.csdn.net/weixin_40408952/article/details/108813723
今日推荐