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 ']'
.