T-SQL LIKE e caracteres especiais
Pergunta
"[" não é classificada um personagem unicode http://en.wikipedia.org/wiki/ List_of_Unicode_characters (meu palpite) por que isso não iria funcionar:
declare @v nvarchar(255)
set @v = '[x]825'
select 1
where @v like '[x]825'
Solução
[]
define um conjunto de caracteres para um jogo padrão. Ele tem um significado especial em uma declaração LIKE. Aqui está a documentação para ele.
Se você está procurando os personagens explicitamente, você precisa escapar deles, como este:
declare @v nvarchar(255)
set @v = '[x]825'
select 1
where @v LIKE '![x]825'
ESCAPE '!'
Outras dicas
[x] tem um específico significado ao servidor SQL. Os suportes são usados ??para expressões regulares muito básicas. Então o que você está procurando é onde o primeiro caractere contém a letra X e, claro, que não é a primeira personagem em sua variável.
Não é melhor utilizar como a menos que você pretende awildcard havea e é uma prática ruim ter um curinga ser o primeiro caractere como faz o uso consulta a varredura da tabela em vez de um índice.