oracle中涨工资,oracle涨工资问题
--综合案例之瀑布模型
--统计每年入职员工人数
/*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涨工资问题相关推荐
- oracle中having作用,oracle中having与where的区别
1.where 不能放在group by 的后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函 ...
- oracle中over 语法,Oracle语法之OVER(PARTITIONBY..)及开窗函数
Oracle的分析函数over 及开窗函数一:分析函数overOracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚 Oracle的分析函数over 及开窗函数 一:分析 ...
- oracle中DBWR全称,Oracle基本术语大全
Oracle基本术语大全 §2.4.2 重做日志工作模式Oracle可以在两种模式之一来工作: 1)ARCHIVELOG模式(可恢复) Oracle 一般至少有两个日志文件.它们轮流交替地被写入所作的 ...
- 在Oracle中exception关键字,Oracle表字段有Oracle关键字出现异常解决方案
一.问题由来 现在进行项目改造,数据库需要迁移,由原来的使用GBase数据库改为使用Oracle数据库,今天测试人员在测试时后台报了一个异常. 把SQL语句单独复制出来进行查询,还是报错,仔细分析原因 ...
- oracle中各种函数,oracle中常用函数大全
1.数值型常用函数 函数 返回值 样例 显示 ceil(n) 大于或等于数值n的最小整数 select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数 s ...
- oracle中判断空,Oracle中判断空游标的方法
1.声明包 create or replace package TAL_TEST is -- Author : ADMINISTRATOR -- Created : 2012/12/9 15:15:3 ...
- oracle中正则表达式规则,Oracle中的正则表达式(及函数)详解
1.概述 相信大家对正则表达式都不陌生,从linux下的命令到Java等编程语言,正则表达式无处不在,虽然我们实际使用的时候也并不一定太多,但是当我们要处理字符串时,它确实是一个强大的工具. 上一篇文 ...
- Oracle中限定日期,Oracle 日期的一些简单使用
Oracle 日期的一些简单使用 更新时间:2009年08月04日 16:52:35 作者: 学习了这么长的数据库,突然意识到自己对于数据库主外键的意义完全弄不懂,是唯一标识一条记录,是为连接查询 ...
- oracle中创建游标,oracle 存储过程创建游标
Oracle与Sql Server差异点详解 1.create函数或存储过程异同点 Oracle 创建函数或存储过程一般是 create or replace -- SQL SERVER 则是在创建之 ...
- oracle中的to_number,Oracle中to_number()函数的用法
to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式. 1.to_number()函数可以将char或varchar2类型的str ...
最新文章
- 使用Mercurial从Google Code获得 项目源代码
- Spring MVC Controller介绍
- Python2.7连接MySQL5.7 附demo
- 添加串口和虚拟终端输出帮助调试
- 如何成为一名优秀的架构师
- Idea中内置Translation插件报“翻译错误”,解决方式!!!
- mysql获取当前时间,前一天,后一天(执行效率比较高)
- 为什么非全站升级HTTPS不可?
- 正高变副高!高校实施“职称退步”?
- 谷歌浏览器外贸版_外贸 网站移动端优化 浅析
- Python中布尔类型
- 犯病的chorme(谷歌浏览器)之css加载失败
- 探访蔚来合肥工厂:是ES8与ES6生产基地 能年产10万台
- 免费好用的十二个SCADA组态软件
- IDEA官网以往版本下载
- 彻底了解HTTP模块
- Camera效果测试-白平衡AWB测试
- “读芯术”精华文章汇总:学术报告
- java类和变量的命名规则
- lol各个服务器的位置,英雄联盟里面别人眼中各个位置的你
热门文章
- 大年初一微信闪退?看看如何修复的 1
- HTMLCSS布局练习---360导航页面
- 基于CentOS系统的Crowd、jira和confluence的安装破解
- 两万块钱闯非洲,他拿下联合国大项目,还把中国路灯卖到军营
- 为安全起见 出差时可以将涉密计算机,张某因组织聚众扰乱公共秩序被公安机关行政拘留15日。张某提起行政诉讼的时限应自获得人身自由之日起...
- Ubuntu Linux环境搭建|系统篇
- 医生学计算机:强大的shar, ubuntu 的强大压缩工具,超出想像
- u盘中的android文件夹图标不显示,U盘中文件夹怎么设置自定义图标而不变样
- .NET框架-LINQ 9类操作符使用举例
- @Model.register(“name“) python装饰器