访问更新查询sql多个值

时间:2011-11-29 16:47:24

标签: sql ms-access sql-update

我已经搜索了一个解决方案,但还没有找到一个有效的解决方案......

我正在尝试根据另一列中的不同值更新列中的多个值。例如:

If status = F05 then statusID = 987
If status = F12 then statusID = 12957

我试过这个没有成功:

UPDATE myTable
SET statusID = CASE status
   WHEN 'F05' THEN 987
   WHEN 'F12' THEN 12957
END

有数千个需要更新,所以当然,我想在一个更新查询中运行它。

我错过了什么?我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:7)

在访问权限中,您可以使用SWITCH功能。 CASE声明不起作用。

UPDATE myTable
SET statusID = 
SWITCH 
   ( [status] = 'F05', 987,
     [status] = 'F12', 12957)  

但是,如果你有太多的项目,你可能想要创建一个数据看起来像

的映射表
OldStatus | NewStatus
---------------------
F05       | 987
F12       | 12957

然后执行以下

UPDATE 
       myTable  
       INNER JOIN Mapping ON myTable.Status  = Mapping.OldStatus
 SET 
        myTable.Status = Mapping.NewStatus;