从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中的字符串中提取电子邮件域的主要内容,如果未能解决你的问题,请参考以下文章

从分号分隔的电子邮件向量中提取具有特定域的电子邮件

如何从zapier中的电子邮件中提取字符串?

用于从切换列表中提取基于域的电子邮件的PHP脚本

我需要从嵌套在 JSON 对象中的名为 token 的字段中解析或提取字符串,以便替换会话令牌的电子邮件和密码

如何从 textarea 字段中提取电子邮件 ID

从字符串中提取电子邮件