Как избежать _ в SQL Server?
Я пытаюсь избежать символа подчеркивания в выражении LIKE
. Я попытался использовать ключевое слово ESCAPE
следующим образом:
COLUMNNAME NOT LIKE '%[\_]xyz%' ESCAPE '\'
но это не сработает. Он по-прежнему фильтрует %xyz%
, когда я действительно хочу, чтобы он отфильтровывал %_xyz%
.
Если не ключевое слово ESCAPE
, как это можно сделать?
Любая помощь приветствуется.
Ответы
Ответ 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 '\'