Ответ 1
Это зависит от того, что вам нужно делать. Вы можете использовать replace
, так как вы хотите заменить значение:
select replace(email, '.com', '.org')
from yourtable
Затем, чтобы UPDATE
ваша таблица с новым окончанием, вы должны использовать:
update yourtable
set email = replace(email, '.com', '.org')
Вы также можете расширить это, установив последние 4 символа значения электронной почты:
update yourtable
set email = replace(email, '.com', '.org')
where right(email, 4) = '.com'
Однако проблема с replace()
заключается в том, что .com
может быть в других местах в электронной почте, а не только в последней. Поэтому вы можете использовать substring()
следующим образом:
update yourtable
set email = substring(email, 1, len(email) -4)+'.org'
where right(email, 4) = '.com';
Смотрите SQL Fiddle with Demo
Использование substring()
вернет начало значения электронной почты без окончательного .com
, а затем конкатенирует .org
до конца. Это предотвращает замену .com
в другом месте строки.
В качестве альтернативы вы можете использовать stuff()
, что позволяет одновременно выполнять как удаление, так и вставку:
update yourtable
set email = stuff(email, len(email) - 3, 4, '.org')
where right(email, 4) = '.com';
Это приведет к удалению 4 символов в позиции третьего символа перед последним (что является исходной позицией окончательного .com
) и вместо этого вставьте .org
.
См. SQL Fiddle with Demo для этого метода.