Comience con el ejemplo genérico y luego lo imitaré con algunos "todos unidos"
select distinct Record from dbo.Records
inner join dbo.Split('stack overflow', ' ') tokens
on records_table.Record like '%' + tokens.value + '%'
Entonces, lo que hice a continuación es burlarme de algunos datos que son los "registros, así como un retorno simulado de la función dbo.Split, básicamente una tabla de varchars con 'pila' y 'desbordamiento' tokenizados en ' '.
select distinct Name from (
select 'stack' as Name
union all
select 'nope' as Name
union all
select ' stackoverflow' as Name
) records_table
inner join (
select 'stack' as value
union all
select 'overflow' as value) tokens
on records_table.Name like '%' + tokens.value + '%'
Resultados:
stack
stackoverflow
No hay nada especial en la función dbo.Split y hay toneladas de ejemplos de implementación por ahí...