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

后端 未结 23 1677
粉色の甜心
粉色の甜心 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:30

    This query is working fine.

    SELECT name
        ,Ltrim(SubString(name, 1, Isnull(Nullif(CHARINDEX(' ', name), 0), 1000))) AS FirstName
        ,Ltrim(SUBSTRING(name, CharIndex(' ', name), CASE 
                    WHEN (CHARINDEX(' ', name, CHARINDEX(' ', name) + 1) - CHARINDEX(' ', name)) <= 0
                        THEN 0
                    ELSE CHARINDEX(' ', name, CHARINDEX(' ', name) + 1) - CHARINDEX(' ', name)
                    END)) AS MiddleName
        ,Ltrim(SUBSTRING(name, Isnull(Nullif(CHARINDEX(' ', name, Charindex(' ', name) + 1), 0), CHARINDEX(' ', name)), CASE 
                    WHEN Charindex(' ', name) = 0
                        THEN 0
                    ELSE LEN(name)
                    END)) AS LastName
    FROM yourtableName
    

提交回复
热议问题