oracle这个函数如何loop循环后的求平均值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle这个函数如何loop循环后的求平均值相关的知识,希望对你有一定的参考价值。

函数循环了24次,按每小时一次取值判断,如何把24次判断的结果(100或0),求取平均值,急急急,求协助

    语法:

    [ <<lable_name>>]

    loop

    statement...

    end loop [lable_name]

    请点击输入图片描述

    注释:lable_name:loop语句的标签,与结构控制语句case类似

    loop:循环的开始

    statement:循环体,也就是需要重复执行的语句

    end loop:循环结束标志

    基本loop循环由于没有控制循环结束语句,所以循环体中需要判断是否循环结束来控制循环,要不然会出现死循环的情况

    1ORACLE中的结构控制(case语句)

    请点击输入图片描述

    一、使用EXIT...WHEN来判断是否循环结束

    例:求1+2+..+100的和

    DECLARE

    str1 number;

    nu   number;

    BEGIN

    str1 := 1 ;

    nu := 0 ;

    <<loop_text>>

    LOOP

    nu := nu + str1;

    str1 := str1+1;

    EXIT loop_text WHEN str1>100 ;

    END LOOP;

    DBMS_OUTPUT.PUT_LINE('循环结束。1+2+。。。+100的结果为:'||nu);

    END;

    请点击输入图片描述

    代码解析:

    第2--6行:声明两个加数并赋予初始值

    第9--10:循环体,做四则运算,加数nu + 加数str1 的和在赋值给加数nu

    第11行:判断str1是否为真,为真则退出,为假则继续循环

    第13行:循环结束后打印输出结果

    请点击输入图片描述

    二、使用IF语句来判断是否循环结束

    例:求1+2+..+100的和

    DECLARE

    str1 number; 

    nu   number; 

    BEGIN

    str1 := 1 ;

    nu := 0 ;    

    <<loop_text>>  

    LOOP         

    nu := nu + str1;    

    str1 := str1+1;     

    IF str1>100 THEN

    DBMS_OUTPUT.PUT_LINE('循环结束');

    EXIT loop_text;

    END IF;    

    END LOOP;    

    DBMS_OUTPUT.PUT_LINE('1+2+。。。+100的结果为:'||nu);  

    END;

    1ORACLE中的结构控制(IF语句)

    请点击输入图片描述

    代码解析:

    第1-6行与上诉一致,声明两个参数然后在赋值初始化

    第11-13行:使用IF语句做判断,条件为真这执行退出语句EXIT,条件为假则跳过继续循环

    请点击输入图片描述

参考技术A

Oracle loop循环无法插入数据

以下的测试基于scott用户下的emp表

首先用while循环进行测试,向emp表插入999条数据

 1 declare
 2         i emp.empno%type :=1;
 3 begin
 4         while i<1000
 5         loop
 6             insert into emp(empno,ename,sal) values(i,concat(\'A\',i),i);
 7             i := i+1;
 8         end loop;
 9 end;
10 /

执行select count(empno) from emp;后确实插入了999条记录

 

执行truncate table emp;

select * from emp;

现在emp表被清空了,接下来使用loop循环插入数据

PLSQL成功完成,但是却没有数据,目前未解决.

 

以上是关于oracle这个函数如何loop循环后的求平均值的主要内容,如果未能解决你的问题,请参考以下文章

c++中 求 平均值是哪个函数

如何在 ORACLE (Varray&loop) 中计算发票的月平均价格

刚练习的求平均分以及输出低分的代码

Oracle数据库中求最大值和平均值的聚合函数是

看完微软大神写的求平均值代码,我意识到自己还是too young了

看完微软大神写的求平均值代码,我意识到自己还是too young了