--综合案例之瀑布模型

--统计每年入职员工人数

/*select to_char(hiredate,'yyyy')from emp;

-->光标-->循环-->退出条件:notfound

变量:1:初始值 2:如何得到

每年入职员工人数:

count80 number:=0;

count81 number:=0;

count82 number:=0;

count87 number:=0;

*/

declare

cursor cemp is select to_char(hiredate,'yyyy') from emp;

phiredate varchar2(4);

--每年入职员工人数

count80 number:=0;

count81 number:=0;

count82 number:=0;

count87 number:=0;

begin

--打开光标

open cemp;

--循环

loop

fetch cemp into phiredate;

exit when cemp%notfound;

--判断年份

if phiredate='1980' then count80:=count80+1;

elsif phiredate='1981' then count81:=count81+1;

elsif phiredate='1982' then count82:=count82+1;

else count87:=count87+1;

end if;

end loop;

close cemp;

--输出

DBMS_OUTPUT.PUT_LINE('1980:'||count80);

DBMS_OUTPUT.PUT_LINE('1981:'||count81);

DBMS_OUTPUT.PUT_LINE('1982:'||count82);

DBMS_OUTPUT.PUT_LINE('1987:'||count87);

end;

--

set SERVEROUTPUT ON;

--案例2:从最低工资涨起每人张10%,但工资总额不能超过5万

-------计算涨工资的人数和涨工资后的工作总额

/*selectempno,sal,from emp order bysal

-->光标-->循环-->退出条件:1.工资总额>5w 2.%notfound

2.变量

涨工资的人数:

countemp number:=0;

涨后工作总额:

saltotal number:

1 select sum(sal) into saltal from emp;

2.涨后工资总额=涨钱工资总额+sal*0.1

*/

declare

cursor cemp is select empno,sal from emp order by sal;

pempno EMP.ENAME%type;

psal EMP.SAL%type;

countemp number:=0;

saltal number;

begin

--得到工资初始值

select sum(sal) into saltal from emp;

open cemp;

loop

exit when saltal>500000;

--取每一个员工涨工资

fetch cemp into pempno,psal;

--

exit when cemp%notfound;

--涨工资

update emp set sal=sal*1.1 where empno=pempno;

--人数+1

countemp:=countemp+1;

--涨后工资

saltal:=saltal+sal*0.1;

end loop;

close cemp;

commit;

dbms_output.put_line('人数:'||countemp||'涨后工资'||saltal);

end;

--

oracle中涨工资,oracle涨工资问题相关推荐

  1. oracle中having作用,oracle中having与where的区别

    1.where 不能放在group by 的后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函 ...

  2. oracle中over 语法,Oracle语法之OVER(PARTITIONBY..)及开窗函数

    Oracle的分析函数over 及开窗函数一:分析函数overOracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚 Oracle的分析函数over 及开窗函数 一:分析 ...

  3. oracle中DBWR全称,Oracle基本术语大全

    Oracle基本术语大全 §2.4.2 重做日志工作模式Oracle可以在两种模式之一来工作: 1)ARCHIVELOG模式(可恢复) Oracle 一般至少有两个日志文件.它们轮流交替地被写入所作的 ...

  4. 在Oracle中exception关键字,Oracle表字段有Oracle关键字出现异常解决方案

    一.问题由来 现在进行项目改造,数据库需要迁移,由原来的使用GBase数据库改为使用Oracle数据库,今天测试人员在测试时后台报了一个异常. 把SQL语句单独复制出来进行查询,还是报错,仔细分析原因 ...

  5. oracle中各种函数,oracle中常用函数大全

    1.数值型常用函数 函数 返回值 样例 显示 ceil(n) 大于或等于数值n的最小整数 select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数 s ...

  6. oracle中判断空,Oracle中判断空游标的方法

    1.声明包 create or replace package TAL_TEST is -- Author : ADMINISTRATOR -- Created : 2012/12/9 15:15:3 ...

  7. oracle中正则表达式规则,Oracle中的正则表达式(及函数)详解

    1.概述 相信大家对正则表达式都不陌生,从linux下的命令到Java等编程语言,正则表达式无处不在,虽然我们实际使用的时候也并不一定太多,但是当我们要处理字符串时,它确实是一个强大的工具. 上一篇文 ...

  8. Oracle中限定日期,Oracle 日期的一些简单使用

    Oracle 日期的一些简单使用 更新时间:2009年08月04日 16:52:35   作者: 学习了这么长的数据库,突然意识到自己对于数据库主外键的意义完全弄不懂,是唯一标识一条记录,是为连接查询 ...

  9. oracle中创建游标,oracle 存储过程创建游标

    Oracle与Sql Server差异点详解 1.create函数或存储过程异同点 Oracle 创建函数或存储过程一般是 create or replace -- SQL SERVER 则是在创建之 ...

  10. oracle中的to_number,Oracle中to_number()函数的用法

    to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式. 1.to_number()函数可以将char或varchar2类型的str ...

最新文章

  1. 使用Mercurial从Google Code获得 项目源代码
  2. Spring MVC Controller介绍
  3. Python2.7连接MySQL5.7 附demo
  4. 添加串口和虚拟终端输出帮助调试
  5. 如何成为一名优秀的架构师
  6. Idea中内置Translation插件报“翻译错误”,解决方式!!!
  7. mysql获取当前时间,前一天,后一天(执行效率比较高)
  8. 为什么非全站升级HTTPS不可?
  9. 正高变副高!高校实施“职称退步”?
  10. 谷歌浏览器外贸版_外贸 网站移动端优化 浅析
  11. Python中布尔类型
  12. 犯病的chorme(谷歌浏览器)之css加载失败
  13. 探访蔚来合肥工厂:是ES8与ES6生产基地 能年产10万台
  14. 免费好用的十二个SCADA组态软件
  15. IDEA官网以往版本下载
  16. 彻底了解HTTP模块
  17. Camera效果测试-白平衡AWB测试
  18. “读芯术”精华文章汇总:学术报告
  19. java类和变量的命名规则
  20. lol各个服务器的位置,英雄联盟里面别人眼中各个位置的你

热门文章

  1. 大年初一微信闪退?看看如何修复的 1
  2. HTMLCSS布局练习---360导航页面
  3. 基于CentOS系统的Crowd、jira和confluence的安装破解
  4. 两万块钱闯非洲,他拿下联合国大项目,还把中国路灯卖到军营
  5. 为安全起见 出差时可以将涉密计算机,张某因组织聚众扰乱公共秩序被公安机关行政拘留15日。张某提起行政诉讼的时限应自获得人身自由之日起...
  6. Ubuntu Linux环境搭建|系统篇
  7. 医生学计算机:强大的shar, ubuntu 的强大压缩工具,超出想像
  8. u盘中的android文件夹图标不显示,U盘中文件夹怎么设置自定义图标而不变样
  9. .NET框架-LINQ 9类操作符使用举例
  10. @Model.register(“name“) python装饰器