sql server - how to split a column into multiple value using sql -


if have thousands of rows data , find out if column called "last name " contains both first name , last name (could middle initial too). sql command use ? (sql server 2008). once find it, how split last name field , place first name or middle initial in own columns ?

for example:

first name        mi       last name  john              b.       smith                              karen a. jones jane                       lawrence                            joan k. bates 

could done in excel ?

you spaces in last name:

select * t lastname '% %'; 

you rows first name missing:

select * t firstname null or firstname = ''; 

edit:

if assume names "simple" given in sample data, can do:

update t     set firstname = left(lastname, charindex(' ', lastname) - 1),         lastname = right(lastname, charindex(' ', reverse(lastname))),         mi = (case when lastname '% % %'                    rtrim(ltrim(substring(lastname, charindex(' ', lastname + 1), 2)))               end)     lastname '% %' , firstname null; 

this makes lots of assumptions formats . . . there no complete middle names, there no honorics, there no suffixes, there no multiple spaces together. if data simple, should work.

here example of logic in sql fiddle.


Comments

Popular posts from this blog

php - regexp cyrillic filename not matches -

c# - OpenXML hanging while writing elements -

sql - Select Query has unexpected multiple records (MS Access) -