在我的2016访问数据库中,我有一个表tblCustomerInfo
,其中包含字段customer_code
。有些旧的customer_code
值需要更新为较新的值(例如,customer_code = 103
的所有行都应更新为customer_code = 122
。)
我可以使用以下查询一次实现customer_code
这样的事情:
UPDATE tblCustomerInfo set customer_code = 122 Where customer_code = 103;
UPDATE tblCustomerInfo set customer_code = 433 Where customer_code = 106;
...
但是,我希望避免为每个customer_code
运行单独的查询。有没有办法在单个查询中更新所有代码,每个代码都有不同的新值?
答案 0 :(得分:0)
创建一个表格,例如带有两个字段oldcode和newcode的CustomerCodes,并添加所有值。然后运行如下更新查询:
UPDATE CustomerCodes INNER JOIN tblCustomerInfo
ON CustomerCodes.OldCode = tblCustomerInfo.Customer_Code
SET Customers.Customer_Code = [CustomerCodes].[NewCode];
替代
如果没有太多要改变,你可以使用这样的开关语句:
UPDATE tblCustomerInfo
SET Customer_Code =
SWITCH(Customer_Code=103,126,
Customer_Code = 106,130,
Customer_Code = 107,133);
根据我的经验,对于switch语句中可以拥有的对的数量有限制,尽管我从来没有想过确切地知道限制是什么 - 它似乎没有记录。