Chcete-li speciální znaky ve výrazu LIKE ukončit, musíte jim předřadit znak escape. Můžete si vybrat, který escape znak použít s klíčovým slovem ESCAPE. (MSDN Ref)
Například toto ukončí symbol % pomocí \ jako escape znak:
select * from table where myfield like '%15\% off%' ESCAPE '\'
Pokud nevíte, jaké znaky budou ve vašem řetězci, a nechcete s nimi zacházet jako se zástupnými znaky, můžete před všechny zástupné znaky uvést znak escape, např.:
set @myString = replace(
replace(
replace(
replace( @myString
, '\', '\\' )
, '%', '\%' )
, '_', '\_' )
, '[', '\[' )
(Všimněte si, že musíte také ukončit svůj escape znak a ujistěte se, že je to vnitřní replace
takže neuniknete těm přidaným z jiného replace
prohlášení). Pak můžete použít něco takového:
select * from table where myfield like '%' + @myString + '%' ESCAPE '\'
Nezapomeňte také vyhradit více místa pro proměnnou @myString, protože se prodlouží výměnou řetězce.