有条件地替换SELECT中的值

Jay*_*lde 3 sql sql-server

我有一个查询返回给定员工的工资成本

SELECT     totalhours * staffbaserate AS TotalCost
FROM         newrotaRaw
WHERE     staffref = @staffref
Run Code Online (Sandbox Code Playgroud)

但是如果返回值> 105,我需要做一些额外的数学运算.我需要做的数学运算是,如果值<105,则返回原值,但是如果值大于105,那么我需要做值*1.128.

例如:

约翰史密斯的成本是90,因此查询应该返回90

David Smith的成本为140因此查询应返回157.92

我确定有一些方法可以使用replace来让它做我想要的但是我只使用了替换完全匹配,在这种情况下,替换是以值为条件的.

任何帮助将非常感激!

Joh*_*som 6

尝试这样的事情.

SELECT     TotalCost = 
    CASE
        WHEN (totalhours * staffbaserate) < 105 THEN (totalhours * staffbaserate)
        ELSE (totalhours * staffbaserate) * 1.128
    END
FROM         newrotaRaw
WHERE     staffref = @staffref
Run Code Online (Sandbox Code Playgroud)