Sql server 使用此域列表删除另一列中包含域名的电子邮件地址

Sql server 使用此域列表删除另一列中包含域名的电子邮件地址,sql-server,Sql Server,我有两个表,每个表有一列。表1有一个列1,其中包含电子邮件地址(电子邮件),表2有一个列2,其中包含电子邮件地址中包含的域(域)。此列2还包含应删除的电子邮件。 我想从第1列中删除包含第2列中的域名和电子邮件地址的电子邮件地址。 这两个表是从文本文件导入到mssql数据库中的一个表中的 谢谢 这是一个非常难看的查询,对于一个大的表1来说应该非常慢。我建议您在表1中添加一个分散的计算列,该列将使用丑陋的表达式包含此计算域: ALTER TABLE table1 ADD computedDomain

我有两个表,每个表有一列。表1有一个列1,其中包含电子邮件地址(电子邮件),表2有一个列2,其中包含电子邮件地址中包含的域(域)。此列2还包含应删除的电子邮件。 我想从第1列中删除包含第2列中的域名和电子邮件地址的电子邮件地址。 这两个表是从文本文件导入到mssql数据库中的一个表中的 谢谢

这是一个非常难看的查询,对于一个大的表1来说应该非常慢。我建议您在表1中添加一个分散的计算列,该列将使用丑陋的表达式包含此计算域:

ALTER TABLE table1 ADD computedDomain as right(t1.column1, len(t1.column1) - Charindex('@', t1.column1)) persisted; 

然后,如果需要,您可以在计算列上添加索引

您可以分享一下您的尝试吗?这似乎是一个基本的SQL操作。almatri@familybankbh.comA.alomani@kpc.com.kwA.deborja@samsung.comA.fahmy@abudhabiaviation.comA.horizon@eim.aeHelloStephane,这是对我的更清晰的描述
ALTER TABLE table1 ADD computedDomain as right(t1.column1, len(t1.column1) - Charindex('@', t1.column1)) persisted;