Вы можете использовать функцию REPLACE
поверх '%' + @add2 + '%'
(и для @add1
, вероятно), чтобы заменить %%
на ''
или что-нибудь еще, что ничего не даст.:
SELECT AddressID, Address1, Address2
FROM Address
WHERE (Address1 LIKE REPLACE('%' + @add1 + '%','%%', 'VoidInput')) OR
(Address2 LIKE REPLACE('%' + @add2 + '%','%%', 'VoidInput'))
Это будет соответствовать 'VoidInput' для пустого параметра, но в противном случае совпадать с исходным% input% string