Comece com o exemplo genérico e, em seguida, vou simular com alguns "union alls"
select distinct Record from dbo.Records
inner join dbo.Split('stack overflow', ' ') tokens
on records_table.Record like '%' + tokens.value + '%'
Então o que eu fiz abaixo foi zombar de alguns dados que são os "registros", bem como um retorno simulado da função dbo.Split, basicamente uma tabela de varchars com 'stack' e 'overflow' tokenizados em ' ' .
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
Não há nada de especial na função dbo.Split e existem muitos exemplos de implementação por aí...