ORA-01476:除数为0的解决方法,SQL语句怎么写

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

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

ORA-01476:除数为0的解决方法,SQL语句怎么写

解决方法1:

decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
如:
select decode(b,0,0,a/b*100)   as d    from aa;

这样编写

decode(标准单价,0,null,实收金额/标准单价)

实例

ORA-01476:除数为0的解决方法,SQL语句怎么写

一般来说,在除法算式前面加个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),否则返回第一个值。
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论