首页 > 解决方案 > SQL Server 删除字符之间的部分字符串

问题描述

我的电子邮件如下所示:

john.doe.946a9979-2951-4852-9e79-ad03eb0c1e5d@gmail.com

我试图得到这个输出:

john.doe@gmail.com

到目前为止我有这个......它很接近。

SELECT 
    Caller = REPLACE(Caller, 
                 SUBSTRING(Caller, 
                    CHARINDEX('.', Caller), 
                       CASE WHEN CHARINDEX('@', Caller, CHARINDEX('.', Caller)) > 1 THEN
                           CHARINDEX('@', Caller, CHARINDEX('.', Caller)) - CHARINDEX('.', Caller)
                       ELSE
                          LEN(Caller)
                END  ) , '')
FROM 
    some.table

标签: sqlsql-serverstringcharindex

解决方案


嗯。我怀疑您要删除的字符串的长度是固定的。那么怎么样:

select stuff(caller, charindex('@',caller ) - 37, 37, '')

推荐阅读