Я пытаюсь выбрать данные, содержащие четыре процентных знака в строке. Как я могу избежать процентных знаков, чтобы мое условие LIKE работало?
Спасибо
Ответ 1
Используйте @% с предложением escape-символа:
select *
from tbl
where fld like '%@%%' escape '@'
Это приведет к поиску всех записей, содержащих символ "%" в столбце fld.
DB2/z имеет несколько иной формат:
select *
from tbl
where fld like {escape '@'} '%@%%'
Очевидно, что вам нужно будет выбрать ваш escape-символ, чтобы он не мешал остальной части вашей строки, но это относительно легко для статических строк. Динамически построенные строки потребуют динамически построенных запросов, чтобы он не использовал символ из строки.