如何提取 SQL Server 2014 中只有 gmail、hotmail、yahoo 电子邮件地址的记录?

How to pull up records which have only gmail, hotmail, yahoo email addresses in SQL Server 2014?

我在数据库中有一个包含电子邮件地址的记录列表。

我想提取只有@gmail、@Hotmail 和@Yahoo 电子邮件地址的记录。我也想要按域名排序的记录。

我的代码:

SELECT [AccountId]
      ,[FirstName]
      ,[LastName]
      ,[EMailAddress]
FROM [Contacts]

WHERE EMailAddress IN ('%@GMAIL%', '%@HOTMAIL%', '%@YAHOO%')

ORDER BY SUBSTRING(EMailAddress,(CHARINDEX('@',EMailAddress)+1),1)

我遇到的问题是我得到零记录,因为我没有电子邮件地址为 %@GMAIL 或 %@HOTMAIL 或 %@YAHOO 的记录。

如果我将代码更改为:

,我的代码就可以工作了
WHERE EMailAddress LIKE '%@GMAIL%'

然后我会得到所有带有 Gmail 地址的记录。但我想要包含上述所有电子邮件地址的记录。

我也试过:

WHERE CONTAINS (EMailAddress, '"*GMAIL*" OR "*HOTMAIL*" OR "*YAHOO*"')

您不能在这样的 IN 子句中使用通配符,您必须使用:

WHERE EmailAddress LIKE '%GMAIL%'
OR EmailAddress LIKE '%HOTMAIL%'
OR EmailAddress LIKE '%YAHOO%'