天天看点

从英文人名中提取First_Name、Middle_Name、Last_Name

         使用SUBSTRING、CHARINDEX、RIGHT、LEFT函数提取英美人名中的First_Name、Middle_Name、Last_Name。本人属于自学的新手,希望各位路过的大神批评指正,提出优化建议共同进步!

  1. 建立临时表 #TEMP1,并新增列TempName,存放“Middle_Name+Last_Name”;
  2. 使用CHARINDEX函数确定姓名中空格键(' ')的位置,分别使用LEFT、RIGHT、SUBSTRING进行字符串的提取;
  3. 删除临时表#TEMP1。
USE [SQL PRACTICE]
GO
SELECT * INTO #TEMP1 FROM [dbo].[Name]
ALTER TABLE #TEMP1 ADD TempName NVARCHAR(255)
UPDATE #TEMP1 SET TempName=RIGHT(FullName,LEN(FullName)-CHARINDEX(' ',FullName))
SELECT [FullName], LEFT([FullName],CHARINDEX(' ',[FullName])-1) First_Name ,
LEFT(TempName,CHARINDEX(' ',TempName)-1) Middle_Name,
SUBSTRING(TempName,CHARINDEX(' ',TempName)+1,LEN(TempName)-CHARINDEX(' ',TempName)+1) Last_Name FROM #TEMP1
DROP TABLE #TEMP1
           
从英文人名中提取First_Name、Middle_Name、Last_Name