在@ SQL之前替换电子邮件地址中的字母

时间:2018-07-17 17:35:20

标签: sql sql-server tsql

我正在尝试更新电子邮件地址字段。我的方案是我的列包含电子邮件地址,并且我希望替换在'@'之前的字符串上起作用。如果字符为“ a”,则在“ @”之前,我希望将其替换为“ b”。

对于davidsmith@yahoo.com,结果将是dbvidsmith@yahoo.com

谢谢

2 个答案:

答案 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;