查询以获取基于特定域名的电子邮件地址

时间:2020-10-16 06:33:12

标签: sql-server

我想从以以下域名结尾的表中获取电子邮件地址。

@yahoomail.com
@accelerator.com
@learning.com
@cloud.vintage.com

2 个答案:

答案 0 :(得分:1)

SELECT EMAIL_COLUMN_NAME
FROM TABLE_NAME
WHERE EMAIL_COLUMN_NAME LIKE '%@yahoomail.com' OR 
      EMAIL_COLUMN_NAME LIKE '%@accelerator.com' OR 
      EMAIL_COLUMN_NAME LIKE '%@learning.com' OR
      EMAIL_COLUMN_NAME LIKE '%@cloud.vintage.com'

答案 1 :(得分:0)

rileyeaton_的答案是正确的,但我想提出一个建议。如果您的计划是多次执行此搜索并希望提高性能,则可以添加一个仅包含域的持久化计算列。

在以下代码中,我添加了一个计算列,该列提取域(包括@),并在该列上添加索引。

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