为什么初始值是0,然后每个+1后输出的结果成这样的呢

来源:5-2 案例:统计每年入职的员工人数

qq_了然于心_0

2016-03-17 23:20

http://img.mukewang.com/56eacae20001a8f906840255.jpg

set serveroutput on

delcare

begin

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

pdiredate vachar2(4);


count80  number=0;

count81  number=0;

count82  number=0;

打开光标

open  emp;

循环

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 phiredate='1987' then count87=count87+1;

end if;


end loop;

关闭关闭

close  emp;


dbms_output.put_line("Total":||(count80+count81+count82+count87));

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;

56eacac400011ebe05000219.jpg



写回答 关注

1回答

  • 夕阳朝阳
    2016-03-21 17:44:24
    已采纳

    计数器只初始化一次,光标是一个集合。在loop循环里边,每次循环取出一条记录,比如第一次循环,取出的记录是1980年的,那么count1就+1(由于count1初始值为0,所以此时count1的值1),然后就执行下一次循环(执行了if就不执行elsif和else了),第二次循环如果取出的还是1980年的,那count1就+1(此时count1的值为2).其它的计数器就不加。以此类推,一共循环14次。循环结束后,四个计数器都有值了

    qq_了然于...

    非常感谢!

    2016-03-22 21:49:15

    共 1 条回复 >

Oracle数据库开发必备利器之PL/SQL基础

Oracle数据库高级开发必备的基础,通过实例带你熟练掌握

75048 学习 · 208 问题

查看课程

相似问题