GLP*_*GLP 0 sql sql-server sql-server-2008
这是我的情况,我有一个名为Statuses(statusID, statusName)的表有22个状态,还有其他表有statusID列.
现在,客户希望将Statuses表中的所有22种状态合并为13种状态.然后我们必须更新,确切地说,映射statusID所有其他表中的所有.
有人可以帮我从这里出去吗?
由于这听起来像是一次性事情,最简单的方法是对地图进行硬编码.
例如
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
Run Code Online (Sandbox Code Playgroud)
或者如果您已有映射表
UPDATE
TABLE
SET StatusID = map.NewStatusID
FROM
TABLE as T
INNER JOIN Map
ON t.StatusID = map.OldStatusID
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4843 次 |
| 最近记录: |