考虑Switch()
作为嵌套IIf()
表达式的替代方案。
有了这些数据DB_Total
...
id Type
1 BOOL
2 abc
3 <-- Type is Null
4 WORD
5 DINT
...此查询更新DB_Total
如下所示...
UPDATE DB_Total
SET [Type] = Switch(
[Type]='BOOL','DIGITAL',
[Type]='WORD','UINT',
[Type]='DINT','LONG'
)
WHERE [Type] IN ('BOOL', 'WORD', 'DINT');
DB_Total
后:
id Type
1 DIGITAL
2 abc
3
4 UINT
5 LONG
但是,您可能会发现另一种方法更方便。创建replacements
表:
id old_type new_type
1 BOOL DIGITAL
2 WORD UINT
3 DINT LONG
然后此语句将产生与版本UPDATE
相同的更改。DB_Total
Switch()
UPDATE DB_Total AS d
INNER JOIN replacements AS r
ON d.Type = r.old_type
SET d.Type = [r].[new_type];
将来,如果您需要更改或添加/删除成对的单词替换,您只需要编辑replacements
表格。这样您就不需要修改查询了。