SQL> select ename,sal 2 from scott.emp 3 where sal>1500 4 and deptno=any(10,30); ENAME SAL ---------- ---------- ALLEN 1600 BLAKE 2850 CLARK 2450 KING 5000
2. 在1981年2月1日~1981年5月1日之间雇佣的雇员名、岗位及雇佣日期,并以雇佣日期的先后进行排序
SQL> select ename,job,hiredate from scott.emp 2 where hiredate between to_date('1981-02-01','yyyy-mm-dd') 3 AND to_date('1981-05-01','yyyy-mm-dd') 4 ORDER BY hiredate; ENAME JOB HIREDATE ---------- --------- -------------- ALLEN SALESMAN 20-2月 -81 WARD SALESMAN 22-2月 -81 JONES MANAGER 02-4月 -81 BLAKE MANAGER 01-5月 -81
3. 获得补助的所有雇员名、工资及补助额,并以工资和补助的降序排序
SQL> select ename,sal,comm from scott.emp 2 where comm is NOT NULL 3 ORDER BY sal desc,comm desc; ENAME SAL COMM -------------------- ---------- ---------- ALLEN 1600 300 TURNER 1500 0 MARTIN 1250 1400 WARD 1250 500
4. 雇员总数,以及获得补助的雇员数
SQL> select count(empno),count(comm) from scott.emp; COUNT(EMPNO) COUNT(COMM) ------------ ----------- 15 4
5. 每个部门每个岗位的平均工资、每个部门的平均工资、每个岗位的平均工资
select a.deptno,a.job,a.deptno_job_avg,b.deptno_avg,c.job_avg from (select deptno,job,avg(sal) as deptno_job_avg from scott.emp group by deptno,job) a left join (select deptno,avg(sal) as deptno_avg from scott.emp group by deptno) b on a.deptno=b.deptno left join (select job,avg(sal) as job_avg from scott.emp group by job ) c on a.job=c.job order by deptno
6. 雇员SCOTT的管理者名
SQL> select b.ename 2 from emp a,emp b 3 where a.mgr=b.empno 4 and a.ename='SCOTT';
7. 部门10的所有雇员名、部门名,以及其他部门名
1 select distinct o.deptno,a.ename,a.dname,c.dname from 2 (select dept.deptno,emp.ename,dept.dname from emp,dept 3 where emp.deptno=dept.deptno) o 4 left join 5 (select dept.deptno,emp.ename,dept.dname from emp,dept 6 where emp.deptno=dept.deptno 7 and dept.deptno=10) a 8 on o.deptno=a.deptno 9 left join 10 (select dname,deptno from dept where deptno!=10) c 11 on o.deptno=c.deptno 12* order by o.deptno SQL> / DEPTNO ENAME DNAME DNAME ---------- -------------------- ---------------------------- -------- 10 CLARK ACCOUNTING 10 KING ACCOUNTING 10 MILLER ACCOUNTING 20 RESEARCH 30 SALES