这是我的情况,我有一个名为Statuses
(statusID, statusName
)的表,有22个状态,还有其他表有statusID
列。
现在,客户希望将Statuses
表中的所有22种状态合并为13种状态。然后我们必须更新,确切地说,映射所有其他表中的所有statusID
。
有人可以帮助我吗?
答案 0 :(得分:5)
由于这听起来像是一次性事情,最简单的方法是对地图进行硬编码。
e.g。
UPDATE
TABLE
SET StatusID = CASE WHEN StatusID = 1 THEN 5
WHEN StatusID = 2 THEN 5
WHEN StatusID = 3 THEN 1
WHEN StatusID = 4 THEN 5
WHEN StatusID = 5 THEN 2
...17 more times
END
或者如果您已有映射表
UPDATE
TABLE
SET StatusID = map.NewStatusID
FROM
TABLE as T
INNER JOIN Map
ON t.StatusID = map.OldStatusID