UPDATE conditionnel SQL basé sur SELECT

Dans SQL Server 2008, j'ai un set de données contenant des coûts pour l'Est et l'Ouest. J'ajoute un nouveau champ pour un client pour le Canada qui doit être 1,5 fois le coût de l'Est ou de l'Ouest (ce qui est toujours plus élevé). Donc, j'essaie de find un sql que je peux exécuter. J'ai essayé ce qui suit, mais je n'ai pas eu de succès:

UPDATE ShippingCost SET IF EastCost>WestCost Canada= EastCost*1.8 ELSE Canada= WestCost*1.8 ENDIF 

Je suis sûr qu'il y a un moyen facile de le faire? Des idées?

Vous devez utiliser Case

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

Utilisez deux instructions de mise à jour:

 UPDATE SHIPPINGCOST SET Canada = EastCost*1.8 WHERE EastCost>WestCost UPDATE SHIPPINGCOST SET Canada = WestCost*1.8 WHERE EastCost<=WestCost 
 UPDATE ShippingCost SET Canada = 1.5 * CASE WHEN EastCost > WestCost THEN EastCost ELSE WestCost END; 
  UPDATE ShippingCost SET Canada = GREATEST(EastCoast, WestCoast) * 1.8; 

Remarque: Le dialecte T-SQL ne prend pas en charge le GREATEST .