我正在尝试使用 RegEX 在 SQL 中验证电子邮件以达到以下标准。
创建一个查询(使用运算符 LIKE)来搜索包含以下内容的所有电子邮件地址:
我尝试编写一个查询,除了“至少 6 个字符条件”之外,我已经考虑了上述所有要点。我得到了结果,但所有结果都显示为无效,我不知道为什么。 下面是我写的查询:
SELECT EmailAddress
CASE WHEN EmailAddress Like '%^[A-Za-z0-9._%\-+!#$&/=?^|~]+@[A-Za-z0-9.-]+[.][A-Za-z]+$%' THEN 'Valid'
ELSE 'INVALID' END
AS valid_email
FROM Database
Where EmailAddress is not null
LIKE
不处理正则表达式。
我不建议使用以下代码,但它满足您的标准:SELECT
EmailAddress,
CASE
WHEN (
( NOT EmailAddress LIKE '%@%@%' ) -- 1
AND ( EmailAddress LIKE '%.%' ) -- 2
AND ( EmailAddress LIKE '%@%.%' ) -- 3
AND ( EmailAddress LIKE '______%' ) -- 4
AND ( NOT ( -- 5
( EmailAddress LIKE '%@.%' )
OR ( EmailAddress LIKE '%.@%' )
) )
AND ( NOT ( -- 6(a)
( EmailAddress LIKE '@%' )
OR ( EmailAddress LIKE '.%' )
OR ( EmailAddress LIKE '%@' )
OR ( EmailAddress LIKE '%.' )
) )
AND ( NOT ( -- 6(b)
( EmailAddress LIKE '%=%' )
OR ( EmailAddress LIKE '%\_%' ESCAPE '\' )
OR ( EmailAddress LIKE '%-%' )
OR ( EmailAddress LIKE '%+%' )
OR ( EmailAddress LIKE '%&%' )
OR ( EmailAddress LIKE '%<%' )
OR ( EmailAddress LIKE '%>%' )
OR ( EmailAddress LIKE '%,%' )
) )
) THEN 'Valid'
ELSE 'INVALID'
END
AS valid_email
FROM Database
Where EmailAddress IS NOT NULL
;
备注:
=
_
、-
、+
和&
在当地完全有效-
如果正确引用,
<
>
和,
在本地有效此表达式一般无法正确分类电子邮件地址Database
Database.Table