create or replace view v1 as
select * from univ.dept order by dname;
列出工資(SAL)在15000到25000之間的所有員工的ENAME,SAL,並按ENAME排序。
create view V2 as
select ename,sal
from univ.emp
where sal between 15000 and 25000
order by ename;
顯示DEPT表中的部門編號和部門名稱,並按部門名稱排序。
create or replace view V3 as
select deptno,dname
from univ.dept
order by dname;
顯示所有不同的工作類型,並降序排序。
create or replace view v4 as
select distinct job from univ.emp order by job desc;
列出沒有提成(comm)的所有職工的姓名與工資,並按姓名排序。
create view V5 as
select ename,sal
from univ.emp
where comm is null
order by ename;
列出部門編號是20,工作是“clerk”(辦事員)的職工信息,並按姓名排序。
create view v6 as
select *
from univ.emp
where (job='clerk'and deptno=20)order by ename;
顯示姓名中包含AR或IN的職工姓名,並按姓名排序。
create view v7 as
select ename
from univ.emp
where (ename like'%AR%' or ename like'%IN%')
order by ename;
顯示姓名中包含AR和IN的職工姓名,並按姓名排序。
create view V8 as
select distinct ename
from univ.emp
where ename like '%AR%' and ename like '%IN%'
order by ename;
顯示所有職工的姓名和各項收入總和(sal+comm),並按姓名排序。
create or replace view V9 as
select ename,sal+nvl(comm,0) as salcomm
from univ.emp
order by ename;
查詢每個部門的平均工資(用round函數取整),並按部門編號排序。
create view v10
as select deptno, round(avg(sal)) "平均工資"
from univ.emp group by deptno;
查詢出每個部門中工資最高的職工,並按部門編號排序。若同一部門有多個最高工資者,再按職工號排序。
create view V11 as
select *
from univ.emp
where sal in (select max(sal)
from univ.emp
group by deptno)
order by deptno,empno asc;
查詢出每個部門比本部門平均工資高的職工人數,並按部門編號排序。
create or replace view V12 as
select a.deptno,count(*) as rs
from univ.emp a,(select deptno,avg(sal) avgsal from univ.emp group by deptno) b
where a.deptno=b.deptno and a.sal>b.avgsal group by a.deptno
order by deptno;
列出至少有一個職工的所有部門,並按部門編號排序。
create view v13 as
select deptno from univ.dept
where deptno in (select deptno from univ.emp group by deptno having count(deptno)>=1) order by deptno;
列出工資比“JONES”多的所有職工,並按職工編號排序。
create view v14 as
select * from univ.emp
where sal>(select sal from univ.emp where ename = 'JONES')
order by empno;
列出所有職工的姓名及其直接上級的姓名,並按職工姓名排序。
create or replace view V15 as
select distinct a.ename,
(select ename from univ.emp where univ.emp.empno=a.mgr) as manager
from univ.emp a
where mgr is not null
order by ename;
列出受僱日期早於其直接上級的所有職工,並按姓名排序。
create view v16 as
select * from univ.emp a
where a.hiredate<(select hiredate from univ.emp b where(b.empno=a.mgr)) order by a.ename;
create view V17 as
select dname,empno,ename
from univ.emp natural right outer join univ.dept
order by dname,empno;
列出所有辦事員的姓名及其部門名稱,並按姓名排序。
create view v18 as
select a.ename,b.dname from univ.emp a
left outer join univ.dept b
on a.deptno=b.deptno where job='clerk' order by a.ename;
列出最低工資大於35000的各種工作類型,並降序排序。
create view v19 as
select job from univ.emp where sal>35000 order by job desc;
列出在銷售部(“sales”)工作的職工的姓名,並按姓名排序。
create view V20 as
select ename
from univ.emp natural join univ.dept
where dname='SALES'
order by ename;
列出工資高於公司平均工資的所有職工,並按姓名排序。
create or replace view V21 as
select ename,sal
from univ.emp
where sal>(select max(sal) from univ.emp where deptno=30)
order by ename;
列出與“SCOTT”從事相同工作的所有職工,並按姓名排序。
create view v22 as
select *
from univ.emp
where job=(select job from univ.emp where ename='SCOTT')
order by ename;
列出工資高於“30號部門的最高工資”的職工姓名和工資,並按姓名排序。
create or replace view V23 as
select ename,sal
from univ.emp
where sal>(select max(sal) from univ.emp where deptno=30)
order by ename;
列出工資高於在部門
create or replace view V24 as
select ename,sal
from univ.emp
where sal>(select max(sal) from univ.emp where deptno=30)
order by ename;
列出在每個部門工作的職工數量、平均工資(用round函數取整),並按部門編號排序。
create view v25 as
select deptno,count(*) numbe,round(avg(sal))as a_1 from univ.emp group by deptno order by deptno;
列出所有職工的姓名、部門名稱和工資,並按姓名排序。
create view V26 as
select ename,dname,sal
from univ.emp natural join univ.dept
order by ename;
列出所有部門的詳細信息和部門人數,並按部門編號排序。
create view V26 as
select ename,dname,sal
from univ.emp natural join univ.dept
order by ename;
列出職工中各種工作類型的最低工資,並按工作類型排序。
create or replace view v28 as
select job, min(sal) as min_sal from univ.emp group by job order by job;
列出各個部門的經理(“manager”)的最低工資。
create view V29 as
select min(sal) as min_sal
from univ.emp natural join univ.dept
where sal in(select sal from univ.emp where job='manager');
列出平均工資最高的部門的名稱。
create or replace view v30 as
select dname
from univ.dept natural join univ.emp
group by dname
having avg(sal)>=all(select avg(sal)from univ.emp group by deptno);
列出不在北美工作職工的姓名,並按姓名排序。
create view v31 as
select e.ename from univ.dept d left outer join univ.countries c on (d.CID=c.CID)left join univ.emp e on(d.deptno=e.deptno)
where c.REGION !='North America'order by ename;