¿Cómo escapo un signo de porcentaje en T-SQL?

Respuestas:

285

Use corchetes. Entonces para buscar el 75%

WHERE MyCol LIKE '%75[%]%'

Esto es más simple que ESCAPE y común a la mayoría de los RDBMS.

gbn
fuente
2
También tenga en cuenta que no tiene que escapar de un símbolo de porcentaje en otras construcciones, como una función del usuario, la concatenación, etc.
Bron Davies
2
También se puede escapar el carácter comodín de subrayado también: [_]. ¿Cómo escapas del corchete abierto entonces? De esta manera: [[]. sqlserver2000.databases.aspfaq.com/…
Csaba Toth
El uso de la cláusula ESCAPE es más fácil de entender que el mecanismo de cotización con daño cerebral de MS.
Suncat2000
52

Puede usar la ESCAPEpalabra clave con LIKE. Simplemente anteponga el carácter deseado (por ejemplo, '!') A cada uno de los %signos existentes en la cadena y luego agregue ESCAPE '!'(o el carácter que elija) al final de la consulta.

Por ejemplo:

SELECT *
FROM prices
WHERE discount LIKE '%80!% off%'
ESCAPE '!'

Esto hará que la base de datos trate el 80% como una parte real de la cadena de búsqueda y no el 80 (comodín).

Documentos de MSDN para LIKE

Jedidja
fuente
14
WHERE column_name LIKE '%save 50[%] off!%'
Aaron Bertrand
fuente
0

En MySQL ,

WHERE column_name LIKE '%|%%' ESCAPE '|'

Kishan Solanki
fuente
Pero la pregunta era sobre T-SQL.
Peter Mortensen