1

我在 myfield 中有如下数据:

UNDC, UNKN
UNDC, MUA
UNKN, BUS

我想更新 myfield 在逗号后只留下文本。

我一直在使用 right 和 charindex 的组合,但是当我运行更新语句时,所有内容都被删除了。这就是我现在所拥有的:

update mytable
set myfield = RIGHT(myfield, charindex(',', myfield)-1)
where myfield like 'un%' and myfield like '%,%'

有人可以告诉我我在这里做错了什么吗?

4

1 回答 1

2

RIGHT()从字符串末尾开始计数字符。这与返回的内容无关CHARINDEX(),因为该函数返回一个从头开始计数的位置。

你可以做你想做的事substring()

update mytable
    set myfield = substring(myfield, charindex(',', myfield) + 1, length(myfield))
    where myfield like 'un%,%' ;

请注意,我将子句中的两个条件组合where成一个条件。

于 2015-01-27T23:44:52.253 回答