SQL除以列的值,除非值为0

时间:2010-07-08 12:41:24

标签: sql sql-server-2005

我很难解决如何'错误处理'这样的SQL。

作为我的SELECT语句的一部分,我有

((sp.sp_retailprice - sp.sp_wholesaleprice_l1) / (sp.sp_wholesaleprice_l1))  as 'calc test'

从另一列中减去一列然后将结果除以sp_wholesaleprice_l1列。

但是,sp_wholesaleprice_l1的值有时为0.00,查询返回预期结果,直到达到0.00并且我得到除以0的错误。

如何进行查询,以便如果我在sp_wholesaleprice_l1列中有0.00,则会执行不同的操作...例如将0替换为1?

非常感谢:)

1 个答案:

答案 0 :(得分:4)

(
(sp.sp_retailprice - sp.sp_wholesaleprice_l1) /
(CASE WHEN sp.sp_wholesaleprice_l1 = 0 THEN 1 ELSE sp.sp_wholesaleprice_l1 END)
)  as 'calc test'

更多关于CASE

http://msdn.microsoft.com/en-us/library/ms181765.aspx