Sql 如何转换';零';作为CASE语句中的数值

Sql 如何转换';零';作为CASE语句中的数值,sql,Sql,我试图将case语句中[Per Occ Limit Between]的零转换为数值,然后在满足以下条件时与[SIR Per Occ]相加。下面的代码工作正常,但我猜它将值0视为字符串,并且没有正确执行加法。为了使case条件将0作为数值,我如何正确地转换它。??我正在使用SQL server 任何帮助都将不胜感激!提前谢谢 cast([SIR Per Occ] as float) * 1000000 as [SIR Per Occ], cast([SIR Agg] as fl

我试图将case语句中[Per Occ Limit Between]的零转换为数值,然后在满足以下条件时与[SIR Per Occ]相加。下面的代码工作正常,但我猜它将值0视为字符串,并且没有正确执行加法。为了使case条件将0作为数值,我如何正确地转换它。??我正在使用SQL server

任何帮助都将不胜感激!提前谢谢

     cast([SIR Per Occ] as float) * 1000000 as [SIR Per Occ],
     cast([SIR Agg] as float) * 1000000 as [SIR Agg],
     case when cast([Per Occ Limit Between] as float) is null
       then 0
       else
       cast([Per Occ Limit Between] as float) * 1000000 
       end as [Per Occ Limit Between],
     cast((cast([SIR Per Occ] as float)) + (cast([Per Occ Limit Between] as float)) as float) * 1000000 as [Policy Occ Attachment],
请尝试以下方法:

  [SIR Per Occ] = cast([SIR Per Occ] as float) * 1000000 
, [SIR Agg]     = cast([SIR Agg] as float) * 1000000 
, [Per Occ Limit Between] = coalesce(cast([Per Occ Limit Between] as float),0) * 1000000 
, [Policy Occ Attachment] = (cast([SIR Per Occ] as float) 
                          + coalesce(cast([Per Occ Limit Between] as float),0)) * 1000000 

你能提供一些示例数据吗?-完整的查询呢?@user7394916很乐意帮助!