sql - 从sql中的字符串中提取电子邮件域
问题描述
我有这样的字符串
'myname' <myname@mydomain.com>
或者像这样
myname@mydomain.com
我想从两种字符串中提取域
第二我可以做这样的事情
select RIGHT(email, LEN(email) - CHARINDEX('@', email))
但同样不适用于第一个字符串。
另外我不知道电子邮件地址会以哪种格式出现
我正在使用 Sql Server 2014。
解决方案
您可以使用stuff()
和replace()
:
select replace(stuff(email, 1, charindex('@', email), ''), '>', '')
这是一个 db<>fiddle。
推荐阅读
- selenium - Selenium sendkeys 为反斜杠 (\) 输入管道 (|)
- javascript - 在Angular JS的动态下拉列表中选择默认值
- cdi - Weblogic 从 12.1.2 升级到 12.1.3 时发现 CDIIntegrationService 错误
- r - 用堆叠的条形图ggplot填充矩阵图?
- angular - 从 Angular6 迁移到 Vue
- flowtype - 无法使用 `localStorage.getItem(...)` 调用 `JSON.parse`
- go - 如何在函数之间传递带有chan的变量
- java - 反应堆,如何调试溢出异常?
- c# - 如何从sql多个表(具有外键的相关表)生成c#类
- windows-installer - 如何为具有外部依赖项的多语言程序创建 Windows 安装程序?