我们如何在SQL Server中处理0/0
?我使用select nullif(0)/nullif(0)
但是..
Msg 8134,Level 16,State 1,Line 1除以零错误。
答案 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
希望这有帮助。