Yes this is not sure whether any of parameter will contain value or not except @city or @zip.
and also I guess IN clause won't work with a variable containing multiple values
like the following code will not work:
select blah from blah where countryId IN (@country)