为什么我的更新查询替换字符串不起作用?

时间:2015-09-02 16:20:48

标签: sql ms-access sql-update

我有一个Access表,其中我有以下格式的交易ID:

Transaction_ID
39296165-1
39296165-2
39296165-3
39284029-1
39284029-2

我正在尝试编写一个查找破折号的查询并删除-1-2-3等等,这样我就可以根据之前的字符串重复删除破折号。

我写了以下内容:

UPDATE mytable
SET Transaction_ID=Left(Transaction_ID,InStr(1,Transaction_ID,"-")-1)*

但是,当它遇到一个在字符串中没有破折号的Transaction_ID时,它会正常工作,它会给我一个类型转换并用空值替换该字符串。

有关错误捕获的建议吗?

2 个答案:

答案 0 :(得分:2)

添加WHERE子句,仅在InStr未返回-1时才更新:

WHERE InStr(1,Transaction_ID,"-") > 0

答案 1 :(得分:0)

这也可行,效率更高。

WHERE Transaction_ID LIKE "*-*"