如何为SQL Server重新编写此MS Access表达式

And*_*rew 2 sql sql-server sql-server-2008

我是网站的新手,我对Access表单中的一些代码有疑问,我在SQL Server 2008中重做,并且它在一行中有SUM,IIF和IsNumeric,我很困惑如何重写这个在SQL中.

Sum([Employee COUNT]*IIf(IsNull([2011]),0,CDbl([2011]))*IIf(IsNumeric([Length]),CDbl([Length]),0)) AS Cost
Run Code Online (Sandbox Code Playgroud)

Tar*_*ryn 6

我相信这会做你需要的:

Sum([Employee COUNT]
    * (case 
            when [2011] Is Null 
            then 0 
            else cast([2011] as float) 
        end)
    * (case 
            when IsNumeric([Length])= 1 
            then cast([Length] as float) 
            else 0 
        end)) AS Cost
Run Code Online (Sandbox Code Playgroud)