基于SELECT的SQL条件更新

时间:2012-01-25 16:57:10

标签: sql sql-server sql-server-2008 select sql-update

在SQL Server 2008中,我有一组包含East和West成本的数据。我正在为加拿大的客户增加一个新的领域,需要是东西方成本的1.5倍(这是更高的)。所以我试图想出一些我可以执行的sql。我尝试过以下但未取得成功:

 UPDATE ShippingCost

 SET

    IF EastCost>WestCost

       Canada= EastCost*1.8

    ELSE

       Canada= WestCost*1.8
    ENDIF

我确定有一种简单的方法可以做到这一点?有什么想法吗?

3 个答案:

答案 0 :(得分:14)

您需要使用案例

 UPDATE ShippingCost

 SET
     Canada = CASE WHEN EastCost>WestCost THEN  EastCost*1.8
                   ELSE WestCost*1.8 END

答案 1 :(得分:0)

使用两个更新语句:

UPDATE SHIPPINGCOST SET Canada = EastCost*1.8 WHERE EastCost>WestCost
UPDATE SHIPPINGCOST SET Canada = WestCost*1.8 WHERE EastCost<=WestCost 

答案 2 :(得分:0)

 UPDATE ShippingCost SET Canada = GREATEST(EastCoast, WestCoast) * 1.8;

注意: T-SQL方言不支持GREATEST