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' 
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top