为了账号安全,请及时绑定邮箱和手机立即绑定

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

http://img1.sycdn.imooc.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



正在回答

3 回答

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

1 回复 有任何疑惑可以回复我~
#1

qq_了然于心_0 提问者

非常感谢!
2016-03-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信