这是我的情况,我有一个名为Statuses (statusID, statusName)的表,它有22个状态,还有其他表有statusID列。
现在,客户希望将Statuses表中的所有22个状态合并为13个状态。然后我们必须更新,准确地说,映射所有其他表中的所有statusID。
有人能帮我吗?
发布于 2012-02-28 00:50:53
因为这听起来像是一次性的事情,所以最简单的方法是对地图进行硬编码。
例如:
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.OldStatusIDhttps://stackoverflow.com/questions/9468536
复制相似问题