Как получить записи, которые имеют только адреса электронной почты gmail, hotmail, Yahoo в 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)
Проблема, с которой я сталкиваюсь, заключается в том, что я получаю записи ZERO, потому что у меня нет записей с адресом электронной почты%@GMAIL или%@HOTMAIL или%@YAHOO.
Мой код работал бы, если бы я изменил его на:
WHERE EMailAddress LIKE '%@GMAIL%'
Тогда я получу все записи с адресами Gmail. Но я хочу записи со всеми вышеуказанными адресами электронной почты.
Я также попробовал:
WHERE CONTAINS (EMailAddress, '"*GMAIL*" OR "*HOTMAIL*" OR "*YAHOO*"')
1 ответ
Решение
Вы не можете использовать подстановочные знаки в предложении IN, как это, вы должны использовать:
WHERE EmailAddress LIKE '%GMAIL%'
OR EmailAddress LIKE '%HOTMAIL%'
OR EmailAddress LIKE '%YAHOO%'