I will have a table
TABLE1
ID Name Country
1 Anna Singapore
2 Brad UK
3 Cassie US
declare @place varchar(20);
set @place=\'US\';
select * from Tab
like
and =
are equivalent in your situation because you are dealing with text (char, nchar, varchar, nvarchar) values.
Instead of
WHERE country = @place
try
WHERE country like @place
For the variable set try Instead of
set @place='US'
Try
set @country = isnull('''US''','''%''')
To test this:
declare @country nvarchar(50)
set @country = isnull('''US''','''%''')
print @Country
set @country = isnull(NULL,'''%''')
print @Country
The extra quotes are necessary because in your example you are using explicit values - '
is an escape character and you need a single quote around each value to signify it is NOT a table column. If you were using the COLUMN_NAME you would simply use a single quote around the % character.
Depending on your SQL version you may have to use a different wildcard character. This is fairly a fairly direct and linear solution, although there are risks associated with open variables.