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两个字段;