Oracle表的常用查询实验(三)
Oracle表的常用查询实验(三)
Oracle表的常用查询实验(二)
http://www.zzzyk.com/database/201309/242513.html
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两个字段;