Mycket grundläggande skulle vara:
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
Detta matchar allt med ett @ i mitten, föregås av minst ett tecken, följt av minst två, en punkt och minst två för toppdomänen.
Du kan skriva mer LIKE
mönster som gör mer specifika saker, men du kommer aldrig att kunna matcha allt som kan vara en e-postadress samtidigt som du inte släpper igenom saker som inte är det. Även med reguljära uttryck har du svårt att göra det rätt. Dessutom matchar även matchning enligt själva bokstäverna i RFC adresskonstruktioner som inte kommer att accepteras/användas av de flesta e-postsystem.
Att göra detta på databasnivå är kanske fel tillvägagångssätt ändå, så en grundläggande förnuftskontroll enligt ovan kan vara det bästa du kan få prestandamässigt, och att göra det i en applikation kommer att ge dig mycket större flexibilitet.