ker*_*ann 5 sql ms-access sql-update
我已经找到了解决方案,但还没找到一个有效的解决方案......
我正在尝试根据另一列中的不同值更新列中的多个值.例如:
If status = F05 then statusID = 987
If status = F12 then statusID = 12957
Run Code Online (Sandbox Code Playgroud)
我试过这个没有成功:
UPDATE myTable
SET statusID = CASE status
WHEN 'F05' THEN 987
WHEN 'F12' THEN 12957
END
Run Code Online (Sandbox Code Playgroud)
有数千个需要更新,所以当然,我想在一个更新查询中运行它.
我错过了什么?我究竟做错了什么?
谢谢!
在访问中,您可以使用该SWITCH功能.CASE语句不起作用.
UPDATE myTable
SET statusID =
SWITCH
( [status] = 'F05', 987,
[status] = 'F12', 12957)
Run Code Online (Sandbox Code Playgroud)
但是,如果您有太多项目,则可能需要创建数据看起来像的映射表
OldStatus | NewStatus
---------------------
F05 | 987
F12 | 12957
Run Code Online (Sandbox Code Playgroud)
然后执行以下操作
UPDATE
myTable
INNER JOIN Mapping ON myTable.Status = Mapping.OldStatus
SET
myTable.Status = Mapping.NewStatus;
Run Code Online (Sandbox Code Playgroud)