web-dev-qa-db-fra.com

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

This la question a aussi la réponse mais la mention spécifique de DB2.

Comment rechercher une chaîne en utilisant LIKE qui a déjà un pourcentage % symbole dedans? L'opérateur LIKE utilise % symboles pour indiquer des caractères génériques.

167
Jedidja

Utilisez des crochets. Donc, chercher 75%

WHERE MyCol LIKE '%75[%]%'

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

253
gbn

Vous pouvez utiliser le mot clé ESCAPE avec LIKE. Ajoutez simplement le caractère souhaité (par exemple, '!') À chacun des % signe dans la chaîne puis ajoute ESCAPE '!' (ou votre personnage de 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ères génériques).

Docs MSDN pour LIKE

48
Jedidja
WHERE column_name LIKE '%save 50[%] off!%'
13
Aaron Bertrand