我查询的记录有两种不同的格式。每个人至少有1条电子邮件记录,格式为John.Doe@abc.com。有些人的第二条记录是他们的电子邮件是DoeJ@abc.com。
如何查询电子邮件格式为John.Doe@abc.com的记录?
我尝试使用以下SQL语句执行此操作,但我返回一个空结果:
Select * from email where regexp_like(emailaddress, '. (@)')
最终产品将用于与其他一些查询的连接,因此选择不同的值不是一个选项。环境是Oracle DB,因为这将通过多个连接完成,效率越高越好。有没有人有任何想法我做错了什么,或其他方法来实现这个目标?
谢谢你, 约书亚
答案 0 :(得分:0)
如何使用like
?
where emailaddress like '%.%@%'
第一种格式似乎通过在&符号之前设置一段时间来区分。
答案 1 :(得分:0)
您可以使用REGEXP_LIKE:
Select * from email where regexp_like(emailaddress, '\S*\.\S*\@\S*\.\S*')
使用“\ S *”匹配所有非空白字符
或只是一个常规的LIKE:
Select * from email where emailaddress LIKE '%.%@%.%'
不确定Oracle中%占位符中包含哪些字符,因此您应该对其进行测试。
REGEXP将为您提供更严格的模式匹配控制。
让我知道它是否有效。