2009-12-10 141 views
1

問: 我有擁有ID的表格,名稱,女士prename,郵件從電子郵件地址中提取姓名和姓氏?

郵件包含一個人的電子郵件地址,例如[email protected]

現在我需要檢查是否Name =''或Prename ='' 並從郵件中提取「John」並將其放入Prename中,並將「Doe」放入列名稱

我可以使用SQL來做到這一點嗎?

我使用MS-SQL 2005

+0

是否總會被「。」分隔? – CSharpAtl 2009-12-10 17:23:46

+0

下面有一些答案可以解決您的具體情況,但正如CSharpAtl的評論所暗示的,可能比這個更重要。電子郵件地址可以有很多種格式,名稱提取可能是一個挑戰。在此考慮一下你的具體要求。 – 2009-12-10 17:46:53

回答

2

您可以使用UPDATE聲明如下。

--relies on one and only one dot in the email account! 
UPDATE Customer 
SET PreName = LEFT(Email, CHARINDEX('.',Email)-1) --FirstName 
    ,Name = SUBSTRING(Email,CHARINDEX('.',Email)+1, CHARINDEX('@',Email)-CHARINDEX('.',Email)-1) 

要測試此解決方案,請嘗試使用單個字符串作爲測試。

--test it out with this script! 
DECLARE @Addr varchar(100) 

SELECT @Addr = '[email protected]' 

DECLARE @DotAt int, @At int 

SELECT @DotAT = CHARINDEX('.',@Addr) 
     ,@At = CHARINDEX('@',@Addr) 

SELECT LEFT(@Addr, @DotAt-1), SUBSTRING(@Addr,@DotAt+1,@[email protected]) 
相關問題