考慮將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
表。您將不需要修改查詢。
啊是的!替換語句會使代碼更好地根據需要進行更改,謝謝! – Gutanoth 2013-02-15 06:27:34