我有这个查询从我们的数据库中提取电子邮件地址。有很多垃圾数据,所以我只想查看有效的电子邮件地址。这是我的语法:
SELECT DISTINCT Email
FROM dbo.Customers
WHERE (Email IS NOT NULL)
AND (Email LIKE '%@%')
AND (RIGHT(Email, 4) IN ('.net', '.com', '.org'))
AND (Email NOT LIKE '%@UniformCity.com')
AND (Email NOT LIKE '%@LifeUniform.com')
AND (RIGHT(RTRIM(Email), 1) <> '.') AND (LEFT(LTRIM(Email), 1) <> '@') --first character not @
AND (Email not Like '%[`:;_*-,()+%\/=#-]%') order by Email
我想检测电子邮件开头的句点。另外作为奖励,如何在没有搞砸的情况下告诉我的声明寻找“[”?
答案 0 :(得分:3)
怎么样
AND (CHARINDEX('.', Email) <> 1)
对于[]
,您可以更改转义字符吗?
AND (Email not Like '%[`:;_*-,^[^]()+%\/=#-]%' ESCAPE '^')
答案 1 :(得分:1)
答案 2 :(得分:0)
您是否希望使用T-SQL执行此操作?如果是这样,SQL Server的版本是什么? (从你的标签我假设SQL Server 2008)
为您提问..为什么不对数据库运行程序来擦除它?提取所有电子邮件地址,使用正则表达式确定每个地址是否有效,并标记(或删除)无效地址。
*更新:我同意Christian Hayter的看法! * 强>