Sangat dasarnya adalah:
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
Ini mencocokkan semuanya dengan @ di tengah, didahului oleh setidaknya satu karakter, diikuti oleh setidaknya dua, titik, dan setidaknya dua untuk TLD.
Anda dapat menulis lebih banyak LIKE
pola yang melakukan hal-hal yang lebih spesifik, tetapi Anda tidak akan pernah bisa mencocokkan segala sesuatu yang bisa menjadi alamat email tanpa membiarkan hal-hal yang tidak lolos. Bahkan dengan ekspresi reguler Anda kesulitan melakukannya dengan benar. Selain itu, bahkan pencocokan menurut huruf RFC cocok dengan konstruksi alamat yang tidak akan diterima/digunakan oleh sebagian besar sistem email.
Melakukan hal ini pada tingkat basis data mungkin merupakan pendekatan yang salah, jadi pemeriksaan kewarasan dasar seperti yang ditunjukkan di atas mungkin adalah yang terbaik yang bisa Anda dapatkan dari segi kinerja, dan melakukannya dalam aplikasi akan memberi Anda fleksibilitas yang jauh lebih besar.