编写SQL CASE语句以根据另一个表中另一列的值更新列

时间:2014-12-04 11:34:54

标签: sql-server case

我需要更新名为" TravelAgencyID2"的列中的值。 in" dbo.ReservationStay"基于列" TravelAgencyTypeCode"的值" dbo.TravelAgency"。

更新的条件如下:如果dbo.TravelAgency中的TravelAgencyTypeCode与DMC'不相等,则TravelAgencyID2 = TravelAgencyID(来自dbo.ReservationStay),ELSE TravelAgencyID2保持不变。

1 个答案:

答案 0 :(得分:1)

那么,您只需要更新那些行 WHERE 满足条件吗?

UPDATE rs
SET rs.TravelAgencyID2 = rs.TravelAgencyID
FROM ReservationStay rs
  INNER JOIN TravelAgency ta on rs.TravelAgencyID2 = ta.ID
WHERE ta.TravelAgencyTypeCode  != 'DMC'

这只会更新您需要的行,而不会触及任何其他行。