--1、选择部门 30 中的雇员
select * from emp where deptno=30;
--2、列出所有办事员的姓名、编号和部门
select ename,empno,dname from emp e inner join dept d on e.deptno = d.deptno where
job=upper('clerk’);
--3、找出佣金高于薪金的雇员
select * from emp where comm>sal;
--4、找出佣金高于薪金 60%的雇员
select * from emp where comm>sal*0.6
--5、找出部门 10 中所有经理和部门 20 中的所有办事员的详细资料
select * from emp where (deptno=10 and job=upper('manager')) or (deptno=20 and
job=upper('clerk '));
--6、找出部门 10 中所有经理、部门 20 中所有办事员,既不是经理又不是办事员但其薪金>
=2000 的所有雇员的详细资料
select * from emp where (deptno=10 and job=upper('manager')) or (deptno=20 and
job=upper('clerk ')) or (job<>upper(‘manager’) and job<>upper(‘clerk’) and sal>=2000)
--7、找出收取佣金的雇员的不同工作
select distinct job from emp where comm>0;
--8、找出不收取佣金或收取的佣金低于 100 的雇员
select * from emp where nvl(comm,0)<100;
--9、找出各月最后一天受雇的所有雇员
select * from emp where hiredate= last_day(hiredate);
--10、找出早于 25 年之前受雇的雇员
select * from emp where months_between(sysdate,hiredate)/12>25;
select * from emp where hiredate<add_months(sysdate,-12*25);
评论1