如果我尝试同时设置两列,有人知道为什么我的更新不起作用吗?
UPDATE mytable
SET [Customer] = RIGHT([Customer], CHARINDEX('#', REVERSE([Customer])) -1) ,
[Segment] = RIGHT([Segment], CHARINDEX('#', REVERSE([Segment])) -1)
WHERE CHARINDEX('#', [Customer]) > 0 OR
CHARINDEX('#', [Segment]) > 0
如果我只更新一列来运行查询,那么它会按预期工作。如果我同时运行两者,我会得到以下错误:
Invalid length parameter passed to the RIGHT function. The statement has been terminated.
我知道当 CHARINDEX 返回 0 时会发生这种情况,但我试图用 WHERE 子句来控制它。