232 votes

Comment échapper à un signe de pourcentage en T-SQL ?

Ce site la question a également la réponse mais il mentionne spécifiquement DB2.

Comment rechercher un chaîne de caractères en utilisant LIKE qui a déjà un pourcentage % symbole qui s'y trouve ? Le site LIKE L'opérateur utilise % pour désigner les caractères génériques.

348voto

gbn Points 197263

Utilisez des crochets. Donc, pour chercher 75% de

WHERE MyCol LIKE '%75[%]%'

C'est plus simple que ESCAPE et commun à la plupart des SGBDR.

3 votes

Notez également qu'il n'est pas nécessaire d'échapper au symbole du pourcentage dans d'autres constructions telles qu'une fonction utilisateur, une concaténation, etc.

3 votes

Vous pouvez également échapper le caractère générique underscore : [_] . Comment échapper au crochet ouvert alors ? Comme ceci : [[] . sqlserver2000.databases.aspfaq.com/

61voto

Jedidja Points 5642

Vous pouvez utiliser le ESCAPE mot-clé avec LIKE . Il suffit de faire précéder le caractère souhaité (par exemple, '!') à chacun des caractères existants. % dans la chaîne de caractères, puis ajoutez ESCAPE '!' (ou le personnage de votre choix) à la fin de la requête.

Par exemple :

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

Ainsi, la base de données traitera 80% comme une partie réelle de la chaîne à rechercher et non 80 (caractère générique).

Docs MSDN pour LIKE

16voto

Aaron Bertrand Points 116343
WHERE column_name LIKE '%save 50[%] off!%'

2voto

yvz Points 1

Vous pouvez utiliser le code ci-dessous pour trouver une valeur spécifique.

WHERE col1 LIKE '%[%]75%'

Lorsque vous voulez un nombre à un chiffre après le signe%, vous pouvez écrire le code suivant.

WHERE col2 LIKE '%[%]_'

-1voto

KishanSolanki124 Points 966

Dans MySQL ,

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

0 votes

Mais la question portait sur T-SQL.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X