公司考核题-(ORACLE篇一)

今天无聊翻腾刚毕业时的电脑,发现11年在单位实习时的一些练习题及考核试题和答案,现在在此记录一下,方便以后查阅。

考核一:

--1、列出薪金比"SMITH"多的所有雇员
     select * from emp where sal > (select sal from emp where ename='SMITH');
--2、找出佣金高于薪金60%的雇员
     select * from emp where comm>(sal*0.6);      
--3、找出收取佣金的雇员的不同工作
     select job from emp where comm is not null;
--4、列出入职日期早于其直接上级的所有雇员
     select e.empno,e.ename,e.mgr ,e.hiredate,m.hiredate from emp e,emp m where m.empno=e.mgr and e.hiredate < m.hiredate;
--5、列出所有“CLERK”(办事员)的姓名及其部门名称
     select t.ename,d.dname from emp t,dept d where t.job='CLERK' and t.deptno=d.deptno;
--6、列出各种工作类别的最低薪金,显示最低薪金大于1500的记录
     select job,min(sal) from emp group by job having min(sal)>1500;
--7、列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号   
     select job,ename from emp where substr(job,1,5)='SALES';
     select e.job, e.ename ,e.deptno from emp e where e.deptno=(select d.deptno from dept d where d.dname='SALES');
--8、列出薪金高于公司平均水平的所有雇员
     select * from emp where sal> (select avg(sal) from emp);
--9、列出与“SCOTT”从事相同工作的所有雇员
     select * from emp where job =( select job from emp where ename='SCOTT');
--10、列出各种类别工作的最低工资
     select job,min(sal) from emp group by job;
--11、列出各个部门的MANAGER(经理)的最低薪金
     select deptno,min(sal) from (select * from emp where job='MANAGER') group by deptno ;
--12、列出所有雇员的雇员名称、部门名称和薪金
     select emp.ename,dept.dname,sal from emp,dept where emp.deptno=dept.deptno;

考核二:
1.若“库名”为“GB”或“HB”或“WB”,则访问路径为:http://10.122.1210.203:2022/分类编码按每两位一拆分,中间用“/”隔开/file/文件名
   例如:http://10.122.1210.203:2022/B3/JH/I0/file/123.doc

2.若“库名” 为“QY” 则访问路径为:http://10.122.1210.203:2022/file/QY/文件名
   例如:http://10.122.1210.203:2022/file/QY/123.doc

3.以上两种情况以外的“库名”,则访问路径为:http://10.122.1210.203:2022/file/文件名
   例如:http://10.122.1210.203:2022/file/123.doc

存储过程如下:
create or replace function myfunc(filename varchar2,truclen number)return varchar2 is
i number(20);
fpath varchar(1000);
len number(20);
 begin
   len:=length(filename);
   i:=0;
   if len>truclen then
     while i<len loop<="" div="">
       fpath:=fpath||substr(filename,i,truclen)||'/';
       i:=i+truclen;
     end loop;
   else
     fpath:=fpath||'/';
   end if;
   return (fpath);
  end myfunc;

create or replace procedure myproc is
fpath varchar2(1000);
cursor db_cursor is select * from qy;
classid varchar2(200);
begin

   for r in db_cursor loop
     if r.dbname='GB' or r.dbname='HB' or r.dbname='wb' then
       classid:=myfunc(r.classid,2);
       fpath:='http://10.122.1210.203:2022/'||classid||'/file'||'/'||r.filename;
     elsif r.dbname='QY' then
       fpath:= 'http://10.122.1210.203:2022/'||'QY/'||r.filename;
     else
       fpath:= 'http://10.122.1210.203:2022/file/'||r.filename;
     
     end if;
     insert into qy_new values(r.dbname,r.classid,r.filename,fpath);
   end loop;

end;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风水月

从心底相信自己是成功的第一步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值