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表的empnoenamesal,并按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.根据表myEMPdeptno字段的值,为姓名‘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两个字段;

 

 

 

你可能感兴趣的:(oracle,select,表的查询)