Could use parsename to break them out:ref: [url]http://www.sqlteam.com/item.asp?ItemID=15044[/url]declare @test table (employee_name varchar(100))insert into @test select 'Victor Michael Peter' union select 'David Peter Andrew' union select 'Kris Victor' union select 'Mathew David' union select 'Andrew' union select 'Michael Mark Peter'-- update spaces with periodsupdate @testset employee_name = replace(replace(employee_name, ' ', '.'),' ', '.')select d.sub_name 'name', count(*) 'count'from @test t inner join ( select parsename(employee_name,1) 'sub_name' from @test union select parsename(employee_name,2) from @test union select parsename(employee_name,3) from @test) d on t.employee_name like '%' + d.sub_name + '%'where d.sub_name is not nullgroup by d.sub_name
Nathan Skerl