Welcome to oracle_awen's archive blog
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 条评论
# 1: 鲁大师 said:
July 8, 2012, 5:50 pm
觉得Oracle应该自带百分数的函数
添加评论

昵称 *

E-mail (防止垃圾信息,此栏留空)