SQL Server избежать подчеркивания
Как избежать символа подчеркивания?
Я пишу что-то вроде следующего предложения where и хочу иметь возможность находить фактические записи с _d в конце.
Where Username Like '%_d'
3 ответов
ссылка T-SQL для LIKE для SQL Server 2000:
шаблон можно использовать подстановочные символы как символы. Чтобы использовать подстановочный знак в качестве литерала, заключите его в скобки. В таблице приведены несколько примеров использования ключевого слова LIKE и подстановочных знаков [].
для вас:
... LIKE '%[_]d'
очевидно, что решение @Lasse правильно, но есть другой способ решить вашу проблему: T-SQL operator LIKE
определяет необязательный побег предложение, которое позволяет объявить символ, который будет избегать следующего символа в шаблон.
для вашего случая, следующие где предложения эквивалентны:
WHERE username LIKE '%[_]d'; -- @Lasse solution
WHERE username LIKE '%$_d' ESCAPE '$';
WHERE username LIKE '%^_d' ESCAPE '^';
эти решения полностью имеют смысл. К сожалению, ни то, ни другое не сработало для меня, как ожидалось. Вместо того, чтобы пытаться возиться с ним, я пошел с работой вокруг:
select * from information_schema.columns
where replace(table_name,'_','!') not like '%!%'
order by table_name