我的表格中有一个名为EMAIL
的列让我们说有用户的电子邮件:
user123@hotmail.com
user145@yahoo.com
现在,要求是仅更新用户电子邮件的域部分。因此,我需要更新Email
符号之后的@
列值。
对于上述数据,更新后用户的电子邮件应该是这样的:
user123@gmail.com
user145@gmail.com
答案 0 :(得分:2)
假设您要更新每个电子邮件地址以拥有Gmail域,您可以使用UPDATE
语句而不使用WHERE
子句:
UPDATE yourTable
SET EMAIL = LEFT(EMAIL, CHARINDEX('@', EMAIL)-1) + '@' + 'gmail.com'
这也可以写成:
UPDATE yourTable
SET EMAIL = LEFT(EMAIL, CHARINDEX('@', EMAIL)) + 'gmail.com'
答案 1 :(得分:2)
UPDATE TableName SET Email = SUBSTRING(Email, 1, CHARINDEX('@', Email)) + 'gmail.com'
使用给定的样本数据执行:
DECLARE @Employee TABLE (Id INT, Email VARCHAR(100));
INSERT INTO @Employee (Id, Email) VALUES
(1, 'user123@hotmail.com'), (2, 'user145@yahoo.com');
UPDATE @Employee SET Email = SUBSTRING(Email, 1, CHARINDEX('@', Email)) + 'gmail.com'
--SELECT * FROM @Employee