如何在sql server中处理零除零

时间:2015-04-17 06:45:46

标签: sql-server

我们如何在SQL Server中处理0/0?我使用select nullif(0)/nullif(0)但是..

  

Msg 8134,Level 16,State 1,Line 1除以零错误。

2 个答案:

答案 0 :(得分:2)

像这样使用NULLIF

SELECT 0/NULLIF(0,0)

如果您在遇到NULL时希望结果为0,请使用ISNULL/COALESCE

SELECT COALESCE(0/NULLIF(0,0),0)

在您的查询中,您只需移动ISNULL即可查看isnull(([Total Collection]) / nullif([Billed Amount], 0), 0)

update generalRegionWise set [Collection %] = 
    convert(VARCHAR,convert(MONEY,100.0 * isnull(([Total Collection]) / nullif([Billed Amount], 0), 0)),1) + '%' 

建议您在转换为VARCHAR时指定长度convert(VARCHAR(50),...在您的情况下,默认长度为30。

答案 1 :(得分:0)

这里有一些例子。

DECLARE @numerator Int = 0
DECLARE @denominator Int = 0

SELECT ISNULL(NULLIF(@numerator, @denominator),0) AS Result;

SELECT CASE WHEN @denominator = 0 
       THEN 0 
       ELSE @numerator / @denominator 
       END AS Results

希望这有帮助。