Как мне избежать знака процента в T-SQL? - PullRequest
163 голосов
/ 25 августа 2011

На этот вопрос также есть ответ , но в нем упоминается DB2.

Как мне найти строку , используя LIKE, в которой уже есть процент % символ в нем?Оператор LIKE использует символы % для обозначения подстановочных знаков.

Ответы [ 3 ]

246 голосов
/ 25 августа 2011

Используйте скобки. Так что искать на 75%

WHERE MyCol LIKE '%75[%]%'

Это проще, чем ESCAPE и является общим для большинства СУБД

47 голосов
/ 25 августа 2011

Вы можете использовать ключевое слово ESCAPE с LIKE. Просто добавьте нужный символ (например, «!») К каждому из существующих % знаков в строке, а затем добавьте ESCAPE '!' (или ваш символ по выбору) в конец запроса.

Например:

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

Это заставит базу данных обрабатывать 80% как фактическую часть строки для поиска, а не 80 (подстановочный знак).

Документы MSDN для LIKE

13 голосов
/ 25 августа 2011
WHERE column_name LIKE '%save 50[%] off!%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...