Подтвердить что ты не робот

Как избежать _ в SQL Server?

Я пытаюсь избежать символа подчеркивания в выражении LIKE. Я попытался использовать ключевое слово ESCAPE следующим образом:

COLUMNNAME NOT LIKE '%[\_]xyz%' ESCAPE '\'

но это не сработает. Он по-прежнему фильтрует %xyz%, когда я действительно хочу, чтобы он отфильтровывал %_xyz%.

Если не ключевое слово ESCAPE, как это можно сделать?

Любая помощь приветствуется.

4b9b3361

Ответ 1

Только это должно работать:

COLUMNNAME NOT LIKE '%[_]xyz%'

Вам здесь не нужен ESCAPE. То, что вы написали, должно также работать.

Если вы хотите использовать ESCAPE, вы можете сделать это:

columnname NOT LIKE '%\_xyz%' ESCAPE '\';

Документация на escape-символы здесь.

Ответ 2

использовать браки [_]

Это работает для меня в SQL Server 2005

select *
from #table 
where a like '%[_]xyz%'

Ответ 3

Попробуйте без скобок:

COLUMNNAME NOT LIKE '%\_xyz%' ESCAPE '\'