我已经阅读了关于nullif
,但无法整理出一个SELECT
声明来正确使用它:
Select (num/total) as percent ...
如果总计为 0,我想返回 Null。如何修改声明?
如果我说
select (num/nullif(total, 0)) as percent ...
除以 Null 是什么意思?
我已经阅读了关于nullif
,但无法整理出一个SELECT
声明来正确使用它:
Select (num/total) as percent ...
如果总计为 0,我想返回 Null。如何修改声明?
如果我说
select (num/nullif(total, 0)) as percent ...
除以 Null 是什么意思?
你可以使用CASE
:
SELECT [percent] = CASE WHEN total = 0 THEN NULL ELSE (num/total) END
FROM Table
要回答您问题的第二部分:
除以 Null 是什么意思?
使用NULL
值的算术计算的结果是NULL
,或者换句话说:
因为 Null 不是数据值,而是未知值的标记,所以对 Null 使用数学运算符会导致未知值,用 Null 表示。
所以声明
select (num/nullif(total, 0)) as percent
NULL
如果.将返回total = 0
。正如 Tim 所提出的,使用CASE
是一种同样有效的处理问题的方法。