当计算除法时候经常会遇到除数为0的情况,这种情况一般是被除数有NULL值或者0值导致的。如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。

当计算除法时候经常会遇到除数为0的情况,这种情况一般是被除数有NULL值或者0值导致的。

解决方法1:
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
如:
select decode(b,0,0,a/b*100) as d from aa;
这样编写
decode(标准单价,0,null,实收金额/标准单价)
实例

一般来说,在除法算式前面加个decode
假设是a/b
decode(b,0,null,a/b) 这样如果b为0,输出null,不为0输出a/b
就不会报错了
解决方法2:
NVL函数的格式如下:NVL(expr1,expr2)
含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
NVL2函数的格式如下:
NVL2(expr1,expr2, expr3)
含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。
NULLIF函数
NULLIF(exp1,expr2)函数的作用是如果exp1和exp2相等则返回空(NULL),否则返回第一个值。