0

我一直在尝试在 SQL 中进行计算,但我遇到的问题是有时其中一个数字可能为 0,这当然会导致 SQL Server 错误。我试图将我的 case 语句从 null 修改为 0,但这样做会导致为其他项目返回错误数据。在这种情况下我应该怎么做才能使计算准确返回,如果它会返回除以 0 错误,则返回 0?

Select product,
count(distinct case when numavaliable is null then ID else null end),
count(distinct product),
count(distinct case when numavaliable is null then ID else null end)/count(distinct      product)
From ProductionInfo
Group By product
4

2 回答 2

4

用途NULLIFISNULL功能。

Select product,
count(distinct case when numavaliable is null then ID else null end),
count(distinct product),
ISNULL (count(distinct case when numavaliable is null then ID else null end)/NULLIF(count(distinct      product), 0), 0)
From ProductionInfo
Group By product
于 2013-11-13T15:15:19.230 回答
-2

您可以在列上使用 IF 来检查它是否为 0。

SELECT IF(y = 0, 'NaN', x/y) FROM YOURTABLE;
于 2013-11-13T15:16:16.667 回答