MS SQL处理“分子分母都有除法式”方法,避免devide by zero error?A:COALESCE函数

MSSQL除零错误处理
本文介绍了一种在MSSQL中处理分子分母都包含除法表达式的有效方法,通过使用CASE WHEN语句结合COALESCE和NULLIF函数来避免出现除以零的错误。该方法适用于需要计算(A/B)/(C/D)形式表达式的场景。

MS SQL处理“分子分母都有除法式”方法,避免devide by zero error:

eg:

有4列值,分别为A,B,C,D.我们需要求(A/B)/(C/D)的值作为新的一列。 只用ISNULL处理,可能会报错devide by zero error.

“divide by zero” error

解决方法/solution:

SELECT 

CASE WHEN  COALESCE(A/ NULLIF(B,0), 0) = 0 OR COALESCE(C / NULLIF(D,0), 0)  = 0 THEN 0 ELSE (A/B)/(C/D) END AS NewColumn

 

根据实际情况,可在外面再加ISNULL,CAST函数。

说明:SELECT COALESCE(dividend / NULLIF(divisor,0), 0) FROM sometable

For every divisor that is zero, you will get a zero in the result set.

引用:http://stackoverflow.com/questions/861778/how-to-avoid-the-divide-by-zero-error-in-sql

转载于:https://www.cnblogs.com/watermarks/p/devidebyzeroerror.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值