Subcadena separada por coma SQL Server

Tengo una cadena desde la cual tengo que extraer la subcadena y consultar sus valores.

declare @str varchar(max) @str='Hello,world,continent,nation,city' select * from mytable where col_word in(SELECT REPLACE(@str,',',''',''')) 

La consulta secundaria

 SELECT REPLACE(@str,',',''',''') 

resultados en

 Hello,'world','continent','nation','city 

Quiero que el resultado anterior esté entre comillas simples para que pueda funcionar para IN

Pero esto solo retorna para el primer valor de col_word Hello que es la primera subcadena en @str .

Que debería hacer ?

Prueba esto:

No puede hacer que parte de su consulta sea una cadena. Tenemos que hacer toda la consulta como una cadena, luego ejecutarlo con el command EXEC () o el procedimiento almacenado sp_executesql . Este último es recomendado.

 declare @str varchar(max); select @str='Hello,world,continent,nation,city'; SELECT @str=''''+REPLACE(@str,',',''',''')+'''' exec('select * from mytable where col_word in('+@str +')') 

Prueba esto:

 declare @str varchar(max) declare @pattern varchar(max) SET @str='Hello,world,continent,nation,city' SELECT REPLACE(@str,',',''',''') SET @pattern = REPLACE('Hello,world,continent,nation,city', ',', ''',''') EXEC('select * from mytable where col_word in(''' + @pattern + ''')')