读书人

Oracle表的惯用查询实验(三)

发布时间: 2013-10-12 11:54:02 作者: rapoo

Oracle表的常用查询实验(三)

Oracle表的常用查询实验(三)

1.查询显示EMP表各雇员的工作类型,并翻译为中文显示(用decode函数)

select empno,ename,decode(job,'clerk','职员','MANAGER','经理','ANALYST','工程师','其他') from my_emp;

EMPNO ENAME DECODE(JOB,'CLERK','职员','MAN

----- ---------- ------------------------------

7799 YUAN 职员

7566 JONES 经理

7782 CLARK 经理

7788 SCOTT 工程师

7839 KING 其他

7876 ADAMS 其他

7902 FORD 工程师

7934 MILLER 其他

2301 kkkkk 职员

2.建立一个视图myV_emp,视图包括myEMP表的empno、ename、sal,并按sal从大到小排列。

create view myV_emp as select empno,ename,sal from my_emp order by sal desc;

3.在myEMP表中建立ename的唯一性索引。

create unique index index_ename on my_emp(ename);

4.计算EMP表中COMM最高与最低的差值,COMM值为空时按0计算。

SQL> declare

2 masal int;

3 misal int;

4 intersectsal int;

5 begin

6 select max(nvl(sal,0)) into masal from emp ;

7 select min(nvl(sal,0)) into misal from emp;

8 intersectsal:=masal-misal;

9 dbms_output.put_line(intersectsal);

10 end;

11 /

3900

PL/SQL procedure successfully completed

5.根据表myEMP中deptno字段的值,为姓名‘JONES’的雇员修改工资;若部门号为10,则工资加100;部门号为20,加200;其他部门加300。

selectdecode(deptno,10,sal+100,20,sal+200,sal+300)from empwhere ename='YUAN';

6.查找部门编号和职位都不同的职员信息

SQL> select distinct empno,job from emp;

EMPNO JOB
----- ---------
7566 MANAGER
7799 clerk
7788 ANALYST
7934 CLERK
7839 PRESIDENT
7876 CLERK

说明:distinct同时作用于empno,job两个字段;

读书人网 >其他数据库

热点推荐