A file supplied by a Client has the following structure:
FullName |
---|
Mr John Joe Smith |
They would like this transformed to the following:
Salutation | FirstName | MiddleName | LastName |
---|---|---|---|
Mr | John | Joe | Smith |
I’ve looked into this and I’ve tried the following:
SELECT substring(FullName,0,charindex(' ',Fullname)) As Salutation, substring(FullName,charindex(' ',Fullname)+1,len(fullname)) As FirstName FROM dbo.Individuals
This produces:
Salutation | FirstName |
---|---|
Mr | John Joe Smith |
I’m struggling to separate it further, is this the best way of doing it or is there a better way?
Any help would be greatly appreciated, thanks.
Advertisement
Answer
As long as there’s always the same four elements in the same order…
select parsename(replace('Mr John Joe Smith',' ','.'),4) [Salutation], parsename(replace('Mr John Joe Smith',' ','.'),3) [FirstName], parsename(replace('Mr John Joe Smith',' ','.'),2) [MiddleName], parsename(replace('Mr John Joe Smith',' ','.'),1) [LastName]