当前位置:数据库 > Oracle >>

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两个字段;
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,