我想在MS Access 2003中编写更新查询。我有一个名为product_code
的字段。
我认为我不能使用CASE语句,因为我有许多值需要更新。我尝试使用多个UPDATE / SET语句,但它不起作用。
答案 0 :(得分:3)
您可以创建一个临时表来保存您的范围和值。将其称为TableB,包含3个字段LowId,HighId,NewId
UPDATE TableA SET TableA.ProductID=TableB.NewId
WHERE TableA.ProductID>=TableB.LowID AND TableA.ProductID<=TableB.HighId
答案 1 :(得分:2)
您可以使用嵌套的IIF
语句来实现此目的:
UPDATE Products
SET Product_Code = IIF(
(Product_Code BETWEEN 110 and 752) or
(Product_Code BETWEEN 910 AND 1124),
15,
IIF(
(Product_Code BETWEEN 1210 and 1213) or
(Product_Code BETWEEN 1310 AND 1423),
16, 18
)
)
如果您的产品代码介于110和752或910和1124之间,它会将Product_Code更新为15.否则,它会检查您的代码是否介于1210和1213或1310和1423之间,其中它使用的情况为16.否则,它使用18。
注意:如果要更新这样的ID,请确保在运行此数据库之前备份数据库或至少是表,因为之前的值将被覆盖。< / p>