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

Cette question a aussi la réponse mais la mention DB2 spécifiquement.

Comment puis-je rechercher une chaîne en utilisant {[0] } qui contient déjà un symbole % pour cent? L'opérateur LIKE utilise des symboles % pour indiquer les caractères génériques.

151
demandé sur Yves M. 2011-08-25 17:43:41

3 réponses

Utilisez des crochets. Donc, pour chercher 75%

WHERE MyCol LIKE '%75[%]%'

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

230
répondu gbn 2011-08-25 13:46:47

Vous pouvez utiliser le ESCAPE clé avec LIKE. Il suffit d'ajouter le caractère désiré (par exemple '!') à chacun des signes % existants dans la chaîne, puis ajoutez ESCAPE '!' (ou votre caractère de choix) à la fin de la requête.

Par exemple:

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

Cela fera que 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).

MSDN Docs pour LIKE

42
répondu Jedidja 2011-08-25 13:44:08
WHERE column_name LIKE '%save 50[%] off!%'
11
répondu Aaron Bertrand 2011-08-25 13:46:40