SQL: parse the first, middle and last name from a fullname field

后端 未结 23 1637
粉色の甜心
粉色の甜心 2020-11-27 10:47

How do I parse the first, middle, and last name out of a fullname field with SQL?

I need to try to match up on names that are not a direct match on full name. I\'d

23条回答
  •  庸人自扰
    2020-11-27 11:41

    Employee table has column "Name" and we had to split it into First, Middle and Last Name. This query will handle to keep middle name as null if name column has value of two words like 'James Thomas'.

    UPDATE Employees
    SET [First Name] = CASE 
            WHEN (len(name) - len(Replace(name, '.', ''))) = 2
                THEN PARSENAME(Name, 3)
            WHEN (len(name) - len(Replace(name, '.', ''))) = 1
                THEN PARSENAME(Name, 2)
            ELSE PARSENAME(Name, 1)
            END
        ,[Middle Name] = CASE 
            WHEN (len(name) - len(Replace(name, '.', ''))) = 2
                THEN PARSENAME(Name, 2)
            ELSE NULL
            END
        ,[Last Name] = CASE 
            WHEN (len(name) - len(Replace(name, '.', ''))) = 2
                THEN PARSENAME(Name, 1)
            WHEN (len(name) - len(Replace(name, '.', ''))) = 1
                THEN PARSENAME(Name, 1)
            ELSE NULL
            END GO
    
    UPDATE Employee
    SET [Name] = Replace([Name], '.', ' ') GO
    

提交回复
热议问题