用户名:   自动登录 找回密码
密   码:    * 注册




发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
 文章标题 : PL/SQL保留2位小数过滤除数为0的百分数函数
帖子发表于 : 2012-07-03 8:22 
离线
头像

注册: 2011-05-01 9:15
帖子: 120
create or replace function fdivpre
(n1 in number,n2 in number)
return number
as
begin
if n2=0 or n2 is null then
return 0;
ELSIF N1 IS NULL THEN
RETURN 0;
else
return round(n1/n2,4)*100;
end if;
end;


百分数保留2位小数,且能过滤掉除数为0的错误。简单测试如下:


代码:
SQL> select fdivpre(12,38)||'%' from dual;

FDIVPRE(12,38)||'%'
-----------------------------------------
31.58%

SQL> select fdivpre(12,34)||'%' from dual;

FDIVPRE(12,34)||'%'
-----------------------------------------
35.29%

SQL> select fdivpre(12,0)||'%' from dual;

FDIVPRE(12,0)||'%'
-----------------------------------------
0%

SQL> select fdivpre(0,12)||'%' from dual;

FDIVPRE(0,12)||'%'
-----------------------------------------
0%


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 


在线用户

注册用户: 没有注册用户


查找:
前往 :  
cron
Powered by OraSql © 2011, 2012, oracle_awen