Sql server 查询以获取基于特定域名的电子邮件地址
我想从以以下域名结尾的表格中获取电子邮件地址Sql server 查询以获取基于特定域名的电子邮件地址,sql-server,Sql Server,我想从以以下域名结尾的表格中获取电子邮件地址 @yahoomail.com @accelerator.com @learning.com @cloud.vintage.com s的回答是正确的,但我想补充一点建议。如果计划多次执行此搜索并希望提高性能,则可以添加仅包含域的持久化计算列 在下面的代码中,我添加了一个提取域(包括@)的计算列,并在该列上添加了一个索引 DECLARE @test TABLE ( Email nvarchar(255), Domain AS SUBST
@yahoomail.com
@accelerator.com
@learning.com
@cloud.vintage.com
s的回答是正确的,但我想补充一点建议。如果计划多次执行此搜索并希望提高性能,则可以添加仅包含域的持久化计算列
在下面的代码中,我添加了一个提取域(包括@)的计算列,并在该列上添加了一个索引
DECLARE @test TABLE (
Email nvarchar(255),
Domain AS SUBSTRING(Email, CHARINDEX('@', Email), 255) PERSISTED,
INDEX IX_Domain (Domain))
INSERT INTO @test VALUES ('abc@123.com')
SELECT * FROM @test WHERE Domain = '@123.com'
此查询将给出以下结果:
Email Domain
abc@123.com @123.com
像“%@yahoomail.com”这样的电子邮件或像“%@accelerator.com”这样的电子邮件在哪里…
这能回答您的问题吗?警告一句:使用“%”(somestring)等搜索带有“ends with”条件的搜索在一个大表上效率很低,速度也很慢。不幸的是,由于前导%
的条件,没有索引可以帮助加快速度…如果我想排除这些域,那么NOT LIKE将正常工作
Email Domain
abc@123.com @123.com