代码之家  ›  专栏  ›  技术社区  ›  Wes Price

SQL除列的值,除非值为0

  •  1
  • Wes Price  · 技术社区  · 16 年前

    我很难解决如何像下面的SQL那样“错误处理”。

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

    将一列减去另一列,然后将结果除以sp\u wholesaleprice\u l1列。

    但是,sp\u wholesaleprice\u l1的值有时是0.00,查询返回预期结果,直到它达到0.00,我得到一个除以0的错误。

    如何进行查询,以便如果在sp\u wholesaleprice\u l1列中有一个0.00,它将执行不同的操作。。。例如用1替换0?

    非常感谢:)

    1 回复  |  直到 16 年前
        1
  •  4
  •   hgulyan    16 年前
    (
    (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'
    

    更多案例

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