I wrote about it here if you want to see it in detail. Meanwhile, you cannot do it exactly as you think.
Your options:
Using the LIKE command:
DECLARE @CarOptions varchar(100) SET @CarOptions = 'Ford, Nisan, Toyota' SELECT * FROM Cars WHERE ',' +@CarOptions +',' LIKE ',%'+CAST(Make AS varchar)+',%'
Spliter function
DECLARE @CarOptions varchar(100) SET @CarOptions = 'Ford, Nisan, Toyota' SELECT Cars.* FROM Cars JOIN DelimitedSplit8K (@CarOptions,',') SplitString ON Cars.Make = SplitString.Item
Dyanmic sql
DECLARE @CarOptions varchar(100) SET @CarOptions = 'Ford, Nisan, Toyota' DECLARE @sql nvarchar(1000) SET @sql = 'SELECT * ' + 'FROM Cars ' + 'WHERE Make IN (' +@CarOptions +') ' EXEC sp_executesql @sql
At that time, your best option is to completely get rid of the variable.
SELECT * FROM cars WHERE make IN (SELECT make FROM carsforsale );
source share