从sql中的字符串中提取电子邮件域
Posted
技术标签:
【中文标题】从sql中的字符串中提取电子邮件域【英文标题】:Extracting Email Domain from string in sql 【发布时间】:2020-07-17 12:21:50 【问题描述】:我有这样的字符串
'myname' <myname@mydomain.com>
或者像这样
myname@mydomain.com
我想从这两种字符串中提取域
第二次我可以做这样的事情
select RIGHT(email, LEN(email) - CHARINDEX('@', email))
但同样不适用于第一个字符串。
我也不知道邮件地址会是什么格式
我使用的是 Sql Server 2014。
【问题讨论】:
如果某人的地址中有一个子域,您会期待什么?例如steve@sales.mybusiness.org.uk
应该是 'sales.mybusiness.org.uk'
【参考方案1】:
您可以使用stuff()
和replace()
:
select replace(stuff(email, 1, charindex('@', email), ''), '>', '')
Here 是一个 dbfiddle。
【讨论】:
以上是关于从sql中的字符串中提取电子邮件域的主要内容,如果未能解决你的问题,请参考以下文章