我使用 nullif 并得到 sql 除以零错误

i used nullif and got sql divide by zero error

select STORECODE,
   ItemCode,
   ColorCode,
   ToplamStok,
   ToplamSatis,
   (CASE WHEN ToplamSatis = 0
     THEN ISNULL(ToplamStok/NULLIF(ToplamSatis,0.1)*7,0)
        ELSE (ToplamStok/ToplamSatis)*7
        end) as SDH
   into #SatisStokSDH
   from #SatisStok

对于此查询,我收到此错误:遇到除以零错误。 为什么我会得到这个,我已经使用了 isnull 函数?

提前致谢。

你的问题是当ToplamSatis恰好为零时,你仍然除以零:

NULLIF(ToplamSatis, 0.1)

以上将用0.1替换ToplamSatis,但前提是前者是NULL不是如果它是零。尝试以下 CASE 逻辑:

CASE WHEN ToplamSatis = 0
     THEN ISNULL((ToplamStok / 0.1)*7, 0)   -- not sure if need to wrap with ISNULL
     ELSE (ToplamStok / ToplamSatis)*7
END