我正在尝试更新电子邮件地址字段。我的方案是我的列包含电子邮件地址,并且我希望替换在'@'之前的字符串上起作用。如果字符为“ a”,则在“ @”之前,我希望将其替换为“ b”。
对于davidsmith@yahoo.com,结果将是dbvidsmith@yahoo.com
谢谢
答案 0 :(得分:2)
DECLARE @email VARCHAR(1000) = 'davidsmith@yahoo.com'
SELECT
REPLACE(SUBSTRING(@email,0,e.t),'a','b')+
SUBSTRING(@email,e.t,8000)
FROM (VALUES (CHARINDEX('@',@email))) e(t);
返回: dbvidsmith@yahoo.com
答案 1 :(得分:0)
您可以使用charindex()
:
select replace(substring(email, 1, charindex('@', email)-1), 'a', 'b') +
substring(email, charindex('@', email), len(email))
from table t
where email like '%@%' -- or
charindex('@', email) > 0;