SQL计算列如果声明

问题描述:

这不起作用。仍然得到零误差的分割。有任何想法吗?SQL计算列如果声明

case when [games]=NULL then (0) 
    when [games]=(0) then (0) 
    else CONVERT([decimal](18,2),CONVERT([float],[goalsAG],(0))/CONVERT([float],[games],(0)),(0)) end 
+0

首先,看不出'[游戏] = NULL'会甚至工作。应该是'[游戏]是空的'。 – 2014-09-04 15:56:49

你永远不能使用=与NULL,使用IS NULL。

而且进一步简化:

(case when isnull([games], 0) = 0 then (0) else CONVERT(decimal,CONVERT([float],[goalsAG],(0))/CONVERT([float],[games],(0)),(0)) end)