Come posso evitare un segno di percentuale in T-SQL?


188

Anche questa domanda ha la risposta , ma menziona specificamente DB2.

Come posso cercare una stringa utilizzando LIKEgià un %simbolo percentuale ? L' LIKEoperatore utilizza %simboli per indicare i caratteri jolly.

Risposte:


285

Usa le parentesi. Quindi cercare il 75%

WHERE MyCol LIKE '%75[%]%'

Questo è più semplice di ESCAPE e comune alla maggior parte dei RDBMS.


2
nota anche che non devi sfuggire a un simbolo percentuale in altri costrutti come una funzione utente, una concatenazione, ecc.
Bron Davies,


2
Si può sfuggire anche il carattere jolly di sottolineatura troppo: [_]. Come fuggi la parentesi quadra aperta allora? Come questo: [[]. sqlserver2000.databases.aspfaq.com/…
Csaba Toth,

L'uso della clausola ESCAPE è più semplice da comprendere rispetto al meccanismo di quotazione cerebrale di MS.
Suncat2000,

52

Puoi usare la ESCAPEparola chiave con LIKE. Basta anteporre il carattere desiderato (ad es. '!') A ciascuno dei %segni esistenti nella stringa e quindi aggiungere ESCAPE '!'(o il proprio carattere preferito) alla fine della query.

Per esempio:

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

Questo farà sì che il database tratti l'80% come parte effettiva della stringa da cercare e non 80 (carattere jolly).

Documenti MSDN per LIKE



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.