我读过有关nullif
的内容,但未能将SELECT
语句放在一起以便正确使用它:
Select (num/total) as percent ...
如果total为0,我想返回Null 。我该如何修改声明?
如果我说
select (num/nullif(total, 0)) as percent ...
除以Null是什么意思?
答案 0 :(得分:4)
您可以使用CASE
:
SELECT [percent] = CASE WHEN total = 0 THEN NULL ELSE (num/total) END
FROM Table
答案 1 :(得分:0)
回答问题的第二部分:
除以Null是什么意思?
使用NULL
值的算术计算结果为NULL
或put it another way:
因为Null不是数据值,而是未知值的标记, 在Null上使用数学运算符导致未知值, 由Null代表。
所以声明
select (num/nullif(total, 0)) as percent
如果NULL
,将返回total = 0
。 Tim提出的CASE
的使用同样有效
处理问题的方法。