JM1*_*JM1 4 sql t-sql sql-server
我有一个只有1列包含字符串的表.我只想获取电子邮件地址.我怎样才能做到这一点?我查看了Substring/Ltrim等,但我还没能把如何只提取部分字符串拼凑起来.我对SQL很新.谢谢您的帮助!
Column1:
John Smith Email: John.Smith@987456email.com Terminate:
Jacqueline Ryan Email: Jacqueline.Ryan@987456email.com Terminate:
Run Code Online (Sandbox Code Playgroud)
假设电子邮件以前缀为前缀Email:且不包含空格,您可以Email:在下一个空格(或字符串结尾)之前和之前取所有字符;
SELECT CASE WHEN CHARINDEX(' ', a.em) <> 0
THEN SUBSTRING(a.em, 1, CHARINDEX(' ', a.em) - 1)
ELSE a.em END email
FROM (
SELECT SUBSTRING(column1, CHARINDEX('Email: ', column1) + 7, LEN(column1)) em
FROM mytable
) a
Run Code Online (Sandbox Code Playgroud)
子查询保留后面Email:的任何内容,外部查询会切断跟踪下一个空格(或字符串结尾)的所有内容.
该查询假定存在Email:标记,如果不能保证,则您将要使用a WHERE来确保仅返回已返回的行.
| 归档时间: |
|
| 查看次数: |
18896 次 |
| 最近记录: |