Знак процентного останова DB2 SQL

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

Спасибо

Ответ 1

Используйте @% с предложением escape-символа:

select *
from tbl
where fld like '%@%%' escape '@'

Это приведет к поиску всех записей, содержащих символ "%" в столбце fld.

DB2/z имеет несколько иной формат:

select *
from tbl
where fld like {escape '@'} '%@%%'

Очевидно, что вам нужно будет выбрать ваш escape-символ, чтобы он не мешал остальной части вашей строки, но это относительно легко для статических строк. Динамически построенные строки потребуют динамически построенных запросов, чтобы он не использовал символ из строки.