T-SQL, как и специальные символы
"[" не относится к юникодному символу http://en.wikipedia.org/wiki/List_of_Unicode_characters (я думаю), почему это не сработает:
declare @v nvarchar(255)
set @v = '[x]825'
select 1
where @v like '[x]825'
2 ответа
[]
определяет диапазон символов для сопоставления с образцом. Это имеет особое значение в заявлении LIKE. Вот документация для этого.
Если вы ищете эти символы явно, вам нужно их экранировать, например так:
declare @v nvarchar(255)
set @v = '[x]825'
select 1
where @v LIKE '![x]825'
ESCAPE '!'
[x] имеет особое значение для сервера SQL. Скобки используются для очень простых регулярных выражений. Так что вы ищете, где первый символ содержит букву X и, конечно, это не первый символ в вашей переменной.
Лучше не использовать подобное, если только вы не собираетесь использовать awildcard, и плохой практикой является использование подстановочного знака в качестве первого символа, так как запрос заставляет использовать сканирование таблицы вместо индекса.