Pesquisar por linhas com caracteres especiais no SQL Server

Pesquisar por linhas com caracteres especiais no SQL Server
Pesquisar por linhas com caracteres especiais no SQL Server

Vídeo: Pesquisar por linhas com caracteres especiais no SQL Server

Vídeo: Pesquisar por linhas com caracteres especiais no SQL Server
Vídeo: Tia Flá X Produção ENGRAÇADO Pula Pula Totozinho - YouTube 2024, Maio
Anonim

Ao solucionar um problema de programação hoje, percebi que você não pode usar uma pesquisa LIKE para colunas de string contendo caracteres especiais como% ou _ sem usar uma sintaxe especial. Descobrir o problema levou apenas alguns minutos, mas lembrar a sintaxe é sempre mais fácil se você escrever sobre isso.

Então, sim, este post é apenas para o meu benefício. Espero que ajude alguém também.

Digamos que você queira encontrar todos os campos que contenham o texto "100%", para que você faça essa consulta:

SELECT * FROM tablename WHERE fieldname LIKE ‘%100%%’

Em vez do que você queria, você verá todas as linhas que contêm "100", além das linhas que contêm "100%".

O problema aqui é que o SQL Server usa o sinal de porcentagem, sublinhado e colchetes como caracteres especiais. Você simplesmente não pode usá-los como um caractere simples em uma consulta LIKE sem evitá-los.

Escape de suporte quadrado

Você pode cercar o% ou _ com colchetes para informar ao SQL Server que o caractere interno é um caractere normal.

SELECT * FROM tablename WHERE fieldname LIKE ‘%100[%]%’

Sintaxe ESCAPE T-SQL

Como alternativa, você pode anexar o operador ESCAPE à sua consulta e adicionar um caractere antes do valor que deseja escapar.

SELECT * FROM tablename WHERE fieldname LIKE ‘%100\%%’ ESCAPE ‘’

A parte ESCAPE "" da consulta informa ao mecanismo SQL para interpretar o caractere após o caractere como literal e não como curinga.

Pessoalmente eu acho o segundo método mais fácil de lidar, e você pode usá-lo para escapar de um colchete também.

Recomendado: