ACCESS中如何通过单条查询按不同WHERE条件更新表的单个字段
合并UPDATE语句方案
通用数据库方案(适用于MySQL、PostgreSQL、SQL Server等主流数据库,不适用于ACCESS数据库)
可以通过CASE条件表达式实现单条UPDATE同时处理两种赋值逻辑,将两条语句共有的过滤条件统一放到WHERE子句,可缩小数据扫描范围,提升执行效率,执行效果和原两条语句完全一致:
UPDATE TableName SET Sector = CASE WHEN ThType = 'Test2' THEN 'NameSector' WHEN ThType = 'Test1' THEN 'NameSector1' ELSE Sector END WHERE Sector IN ('') AND ThType IN ('Test1', 'Test2');
ACCESS数据库专属方案
ACCESS数据库不支持上述CASE表达式的写法,可改用ACCESS原生支持的IIF函数实现同等效果:
UPDATE TableName SET Sector = IIF(ThType = 'Test2', 'NameSector', 'NameSector1') WHERE Sector IN ('') AND ThType IN ('Test1', 'Test2');
内容的提问来源于stack exchange,提问作者TourEiffel
相关产品推荐
相关产品推荐

