使用多个 case 语句避免除以 0 错误

Avoiding Divide By 0 Error With Multiple Case Statements

以下是 SELECT 子句的一部分,它给我除以 0 错误:

(SUM([Hours])/(SUM(CASE WHEN J.Description <> 'I' THEN 1 ELSE 0 END))

以下是我如何纠正除以 0 错误的分母:

CASE WHEN(SUM(CASE WHEN J.Description <> 'I' THEN 1 ELSE 0 END)) = 0 THEN 1 ELSE SUM(CASE WHEN J.Description <> 'I' THEN 1 ELSE 0 END))  AS 'MTBUR'

这给我留下了语法错误。我做错了什么?

所以基本上如果 SUM = 0 那么我希望分母为 1 ELSE

SUM(CASE WHEN J.Description <> 'I' THEN 1 ELSE 0 END

这个怎么样?将 case 表达式的 else 部分设置为 NULL,这样如果没有 Description = 'I'

的行,总和将为 NULL
SUM([Hours]) /  ISNULL(SUM(CASE WHEN J.Description <> 'I' THEN 1 END), 1)

CASE WHEN(SUM(CASE WHEN J.Description <> 'I' THEN 1 ELSE 0 END)) = 0 THEN 1 ELSE SUM (CASE WHEN J.Description <> 'I' THEN 1 ELSE 0 END)) 结束 AS 'MTBUR'

需要另一个 END 来结束嵌套案例