Очень основные будет:
SELECT
EmailAddress,
CASE WHEN EmailAddress LIKE '%[email protected]_%_.__%'
AND EmailAddress NOT LIKE '%[any obviously invalid characters]%'
THEN 'Could be'
ELSE 'Nope'
END Validates
FROM
Table
Это соответствует все с @ в середине, предшествовали, по крайней мере один символ, а затем, по меньшей мере, два, точку и, по меньшей мере, два ДВА ,
Вы можете написать более LIKE
шаблонов, которые будут делать более конкретные вещи, но вы никогда не сможете сопоставить все, что может быть адресом электронной почты, не позволяя проскальзывать через то, что нет. Даже с регулярными выражениями вам сложно делать это правильно. Кроме того, даже сопоставление в соответствии с самыми буквами RFC соответствует конструкциям адресов, которые не будут приниматься/использоваться большинством систем электронной почты.
Выполнение этого на уровне базы данных, возможно, неправильный подход в любом случае, поэтому базовая проверка здравомыслия, как указано выше, может быть лучше всего, если вы можете повысить производительность, а ее выполнение в приложении обеспечит вам гораздо большую гибкость.
возможно дубликат [Sql скрипт, чтобы найти недействительные адреса электронной почты] (http://stackoverflow.com/questions/801166/sql-script- to-find-invalid-email-addresses) – Neolisk 2015-01-28 15:28:28