2

我已经阅读了关于nullif,但无法整理出一个SELECT声明来正确使用它:

Select (num/total) as percent ...

如果总计为 0,我想返回 Null。如何修改声明?

如果我说

select (num/nullif(total, 0)) as percent ...

除以 Null 是什么意思?

4

2 回答 2

4

你可以使用CASE

SELECT [percent] = CASE WHEN total = 0 THEN NULL ELSE (num/total) END 
FROM Table
于 2012-05-18T01:07:55.420 回答
0

要回答您问题的第二部分:

除以 Null 是什么意思?

使用NULL值的算术计算的结果是NULL,或者换句话说

因为 Null 不是数据值,而是未知值的标记,所以对 Null 使用数学运算符会导致未知值,用 Null 表示。

所以声明

select (num/nullif(total, 0)) as percent

NULL如果.将返回total = 0。正如 Tim 所提出的,使用CASE是一种同样有效的处理问题的方法。

于 2013-03-27T21:04:34.787 回答