問: 我有擁有ID的表格,名稱,女士prename,郵件從電子郵件地址中提取姓名和姓氏?
郵件包含一個人的電子郵件地址,例如[email protected]
現在我需要檢查是否Name =''或Prename ='' 並從郵件中提取「John」並將其放入Prename中,並將「Doe」放入列名稱
我可以使用SQL來做到這一點嗎?
我使用MS-SQL 2005
問: 我有擁有ID的表格,名稱,女士prename,郵件從電子郵件地址中提取姓名和姓氏?
郵件包含一個人的電子郵件地址,例如[email protected]
現在我需要檢查是否Name =''或Prename ='' 並從郵件中提取「John」並將其放入Prename中,並將「Doe」放入列名稱
我可以使用SQL來做到這一點嗎?
我使用MS-SQL 2005
您可以使用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])
是否總會被「。」分隔? – CSharpAtl 2009-12-10 17:23:46
下面有一些答案可以解決您的具體情況,但正如CSharpAtl的評論所暗示的,可能比這個更重要。電子郵件地址可以有很多種格式,名稱提取可能是一個挑戰。在此考慮一下你的具體要求。 – 2009-12-10 17:46:53