Muito básico seria:
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
Isso corresponde a tudo com um @ no meio, precedido por pelo menos um caractere, seguido por pelo menos dois, um ponto e pelo menos dois para o TLD.
Você pode escrever mais
LIKE
padrões que fazem coisas mais específicas, mas você nunca será capaz de combinar tudo o que poderia ser um endereço de e-mail sem deixar escapar coisas que não são. Mesmo com expressões regulares, você tem dificuldade em fazer isso direito. Além disso, mesmo a correspondência de acordo com as próprias letras do RFC corresponde a construções de endereço que não serão aceitas/usadas pela maioria dos sistemas de e-mail. Fazer isso no nível do banco de dados talvez seja a abordagem errada de qualquer maneira, portanto, uma verificação de sanidade básica, conforme indicado acima, pode ser o melhor que você pode obter em termos de desempenho, e fazê-lo em um aplicativo fornecerá uma flexibilidade muito maior.