仅使用SQL,有没有办法从一列misc数据中查询所有电子邮件值?
我试过了like '%@%'
,但可能会出现这样的文字:Fort Knox @ Room 123
。
编辑:正则表达式不可用。
我也试过like '%@%.%'
,但没有用空格覆盖案例。
答案 0 :(得分:1)
以下是SQLFiddle。
SELECT *
FROM TABLENAME
WHERE email LIKE '%@%.%'
AND email NOT LIKE '% %';
答案 1 :(得分:0)
如果您不介意使用CLR功能,我建议您编写一个.NET方法,该方法使用正确的正则表达式(您可以在线找到各种表达式)来验证电子邮件地址,然后将该函数作为您的一部分调用查询。
select * from whatever
where dbo.IsThisAnEmailAddress(myColumn) = 1
答案 2 :(得分:0)
我会在您的查询中使用regular expressions来获取电子邮件。此站点上有大量链接可用于有效的电子邮件正则表达式。
答案 3 :(得分:0)
我同意其他人,RegEx更好,但是,如果没有,请尝试以下
WHERE fieldName LIKE '%@%'
AND fieldName LIKE '%.%'
AND charindex(' ',fieldName)=0
它不是很好,也很慢,但应该让你非常接近。 I.E包含@和an。没有空格......
SQLFiddle:http://www.sqlfiddle.com/#!3/5f6d8/1