如何提取 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%'
我在数据库中有一个包含电子邮件地址的记录列表。
我想提取只有@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%'