SQL查询建议..用模式匹配编写查询

时间:2013-09-07 20:12:16

标签: sql-server-2008

民间,

我在MSSQl表中有一个列如下:

| email |
-----------
suzuki@amc.com
yamaha@abc.co
harley@cbc.com
....

我想编写一个查询,用一个工作“cars”替换所有字段中'@'之前的所有内容。所以列应该看起来:

| email |
-----------
cars@amc.com
cars@abc.co
cars@cbc.com
....

关于如何形成此查询的任何建议?

3 个答案:

答案 0 :(得分:2)

这里已经讨论了许多解决这个问题的例子:

How do I replace a substring of a string before a specific character?

例如:

UPDATE YourTable set email = 'cars' + SUBSTRING(email, CHARINDEX('@',email), LEN(email))

答案 1 :(得分:0)

查询:

<强> SQLFIDDLEExample

UPDATE Table1 
SET email = 'cars' + 
        SUBSTRING(email, CHARINDEX('@',email), LEN(email)-CHARINDEX('@',email)+1)

答案 2 :(得分:0)

您可以试试看, 首先从邮件ID中仅选择before @部分 使用此substring_index(email,'@',1)

然后替换为汽车

replace(email,substring_index(email,'@',1),'cars')

select replace(email,substring_index(email,'@',1),'cars') from table;