Как мне избежать знака процента в T-SQL?
На этот вопрос также есть ответ, но в нем упоминается DB2.
Как мне найти строку, используя LIKE
который уже имеет процент %
символ в нем? LIKE
оператор использует %
символы для обозначения подстановочных знаков.
5 ответов
Используйте скобки. Так что искать на 75%
WHERE MyCol LIKE '%75[%]%'
Это проще, чем ESCAPE и является общим для большинства СУБД
Вы можете использовать ESCAPE
ключевое слово с LIKE
, Просто добавьте нужный символ (например, "!") К каждому из существующих %
знаки в строке, а затем добавить ESCAPE '!'
(или ваш выбор персонажа) до конца запроса.
Например:
SELECT *
FROM prices
WHERE discount LIKE '%80!% off%'
ESCAPE '!'
Это заставит базу данных обрабатывать 80% как фактическую часть строки для поиска, а не 80(подстановочный знак).
Вы можете использовать приведенный ниже код, чтобы найти конкретное значение.
WHERE col1 LIKE '%[%]75%'
Если вам нужно однозначное число после знака%, вы можете написать следующий код.
WHERE col2 LIKE '%[%]_'