Question: I am working in SQL Server 2008. I have a stored proc that takes a parameter, called @test. This parameter is varchar(255). In this stored proc, I need to parse this string, convert each value into a string itself (there will be a variable number of values), and build a list to use in a NOT IN statement.

For example, suppose @test = 'a, b, c, d'. I need to send this parameter into my stored proc. There is a SELECT query in my stored proc that uses a NOT IN statement. For this example, I need this NOT IN statement to read NOT IN('a', 'b', 'c', 'd').

How do I accomplish this? Or, is this a bad practice?

Answer: 
You can use dynamic sql for this. Use the replace function to get the correct `NOT IN()` argument:

```
DECLARE @test VARCHAR(10) = 'a,b,c,d'

DECLARE @sql NVARCHAR(MAX)

SELECT @sql = 'SELECT *
FROM #temp
WHERE label NOT IN (''' + REPLACE( @test ,',',''',''') + ''')'

EXEC sp_executesql @sql

```
you can find the char or string in the whole string having delimiter as comma (,)

```
DECLARE @code VARCHAR(50) = 'c', @text varchar(100) = 'a,b,c,d,e'

SELECT CHARINDEX(',' + @code + ',', ',' + @text + ',') > 0                             

```