如何避免在ms-sql select语句中除以0?

时间:2012-05-18 01:06:09

标签: sql-server select null divide-by-zero

我读过有关nullif的内容,但未能将SELECT语句放在一起以便正确使用它:

Select (num/total) as percent ...

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

如果我说

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

除以Null是什么意思?

2 个答案:

答案 0 :(得分:4)

您可以使用CASE

SELECT [percent] = CASE WHEN total = 0 THEN NULL ELSE (num/total) END 
FROM Table

答案 1 :(得分:0)

回答问题的第二部分:

  

除以Null是什么意思?

使用NULL值的算术计算结果为NULLput it another way

  

因为Null不是数据值,而是未知值的标记,   在Null上使用数学运算符导致未知值,   由Null代表。

所以声明

select (num/nullif(total, 0)) as percent
如果NULL

将返回total = 0。 Tim提出的CASE的使用同样有效 处理问题的方法。