SELECT
substring(@email , 0 , CHARINDEX('.' , @email)) ,
substring(@email , CHARINDEX('.',@email)+1 , CHARINDEX('@' , @email) - CHARINDEX('.' , @email)-1),
substring(@email , CHARINDEX('@' , @email) , LEN(@email) - CHARINDEX('@' , @email)+1)
from employee;
与您的电子邮件列名
更简单版本--replace @email明白:
DECLARE @email NVARCHAR(30) = '[email protected]';
DECLARE @dot INT =CHARINDEX('.' , @email);
DECLARE @atrate INT =CHARINDEX('@' , @email);
DECLARE @len INT =LEN(@email);
SELECT
substring(@email , 0 , @dot),
substring(@email , @dot+1 , @atrate - @dot-1),
substring(@email, @atrate , @len - @atrate+1);
丑陋的问题。像“jon.m.skeet @ google.co.uk”这样的边缘案例呢? –
什么是SQL Server版本? –
以及如果电子邮件以姓氏而不是名字开头,该怎么办? – GuidoG