Как избежать процентного знака в T-SQL?

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

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

Ответ 1

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

WHERE MyCol LIKE '%75[%]%'

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

Ответ 2

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

Например:

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

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

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

Ответ 3

WHERE column_name LIKE '%save 50[%] off!%'