Comment puis-je échapper à un signe de pourcentage dans T-SQL?


191

Cette question a également la réponse , mais elle mentionne spécifiquement DB2.

Comment rechercher une chaîne en utilisant LIKEqui contient déjà un %symbole de pourcentage ? L' LIKEopérateur utilise des %symboles pour désigner des caractères génériques.

Réponses:


292

Utilisez des crochets. Donc chercher 75%

WHERE MyCol LIKE '%75[%]%'

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


2
notez également que vous n'avez pas à échapper à un symbole de pourcentage dans d'autres constructions telles qu'une fonction utilisateur, une concaténation, etc.
Bron Davies


2
Vous pouvez échapper aussi le trait de soulignement caractère générique aussi: [_]. Comment échapper alors au crochet carré ouvert? Comme ceci: [[]. sqlserver2000.databases.aspfaq.com/…
Csaba Toth

L'utilisation de la clause ESCAPE est plus facile à comprendre que le mécanisme de cotation cérébrale de MS.
Suncat2000

53

Vous pouvez utiliser le ESCAPEmot - clé avec LIKE. Ajoutez simplement le caractère souhaité (par exemple «!») À chacun des %signes existants dans la chaîne, puis ajoutez ESCAPE '!'(ou le caractère de votre choix) à la fin de la requête.

Par exemple:

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

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

Documents MSDN pour LIKE



En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.