or some really butchered version of it...declare @t1 table ( billto char(100))insert into @t1 select 'Jane Doe, 1322 S. Ridgeland, Berwin, IL 60402' unionselect 'Janet Doe, 176 Hampton Drive, Langhorg, PA 19047' unionselect 'Jil Doe, 4831 E. San Gabriel, Fresno, CA 93726' unionselect 'Sam Doe, 11913 Brookshire Avenue, Downey, CA 90242' unionselect 'Harry Doe, 4240 2G Hutchinson River Parkway, Bronx, NY 10475'select left(parsename(replace(replace(billto,'.','|'),',','.'),4),charindex(' ',parsename(replace(replace(billto,'.','|'),',','.'),4)) ) firstname , ltrim(substring(parsename(replace(replace(billto,'.','|'),',','.'),4),charindex(' ',parsename(replace(replace(billto,'.','|'),',','.'),4)), len(parsename(replace(replace(billto,'.','|'),',','.'),4)))) lastname, ltrim(replace(parsename(replace(replace(billto,'.','|'),',','.'),3),'|','.')) address, ltrim(parsename(replace(replace(billto,'.','|'),',','.'),2)) city, left(ltrim(parsename(replace(replace(billto,'.','|'),',','.'),1)),charindex(' ',ltrim(parsename(replace(replace(billto,'.','|'),',','.'),1))) ) state , ltrim(substring(ltrim(parsename(replace(replace(billto,'.','|'),',','.'),1)),charindex(' ',ltrim(parsename(replace(replace(billto,'.','|'),',','.'),1))), len(ltrim(parsename(replace(replace(billto,'.','|'),',','.'),1))))) zipcodefrom @t1