Como escapar de um sinal de porcentagem no T-SQL?


188

Esta pergunta também tem a resposta , mas menciona o DB2 especificamente.

Como faço para procurar uma seqüência de usar LIKEque já tem um por cento %símbolo nele? O LIKEoperador usa %símbolos para significar caracteres curinga.

Respostas:


285

Use colchetes. Então, procurar 75%

WHERE MyCol LIKE '%75[%]%'

Isso é mais simples que o ESCAPE e comum à maioria dos RDBMSes.


2
Observe também que você não precisa escapar de um símbolo de porcentagem em outras construções, como uma função de usuário, concatenação etc.
Bron Davies


2
Você pode escapar também o caractere curinga sublinhado também: [_]. Como você escapa do colchete aberto então? Como esta: [[]. sqlserver2000.databases.aspfaq.com/…
Csaba Toth

O uso da cláusula ESCAPE é mais fácil de entender do que o mecanismo de cotação com danos cerebrais da MS.
precisa saber é o seguinte

52

Você pode usar a ESCAPEpalavra-chave com LIKE. Simplesmente acrescente o caractere desejado (por exemplo, '!') A cada um dos %sinais existentes na string e adicione ESCAPE '!'(ou seu caractere de escolha) ao final da consulta.

Por exemplo:

SELECT *
FROM prices
WHERE discount LIKE '%80!% off%'
ESCAPE '!'

Isso fará com que o banco de dados trate 80% como uma parte real da string a ser pesquisada, e não 80 (curinga).

Documentos do MSDN para LIKE



Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.