Обновление поля с использованием функций right и charindex
У меня есть данные в моем поле, которое выглядит так:
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 '%,%'
Может кто-нибудь сказать мне, что я здесь делаю не так?
1 ответ
RIGHT()
считает символы с конца строки. Это не имеет ничего общего с тем, что CHARINDEX()
возвращает, потому что эта функция возвращает позицию отсчета с начала.
Вы можете делать то, что вы хотите, используя substring()
:
update mytable
set myfield = substring(myfield, charindex(',', myfield) + 1, length(myfield))
where myfield like 'un%,%' ;
Обратите внимание, что я объединил два условия в where
пункт в одно условие.