Tienes dos opciones:
-
encerrarlos en
[y]. Entonces:where pattern like '[%]'Busca el carácter de porcentaje. Lista completa de caracteres para escapar -
'_', '%', '[', ']'con los reemplazos correspondientes'[_]', '[%]', '[[]', '[]]'. El código de muestra se puede encontrar en Escapar del carácter de escape no funciona:operador SQL LIKE -
use un carácter de escape que es poco probable que esté en la cadena, como un acento grave:
where pattern like '`%' escape '`'(Vea la sintaxis en MSDN - LIKE (Transact-SQL) .)
En ambos casos, le sugiero que haga la sustitución en la capa de la aplicación, pero también puede hacerlo en SQL si realmente lo desea:
where pattern like replace(@pattern, '%', '[%]')
Y, dar acceso al usuario final a los comodines puede ser algo bueno en términos de la interfaz de usuario.
Nota:hay un par de caracteres especiales más '-' y '^' en la consulta LIKE, pero no es necesario escapar si ya está escapando '[' y ']' .