Escapando dos curingas em queries LIKE

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Sex, 21 Mai 2004 12:49 pm

Na maioria dos sistemas operacionais, usa-se o * (asterisco) e o ? (ponto de interrogação) para se referir a curingas.

Sabemos que para consultar em SQL usando "curingas" usa-se o LIKE, mas os curingas são diferentes:
Para múltiplos caracteres, usa-se o % e para um caracter é o _ (underline). Vamos aos exemplos:

Código: Selecionar todos
SQL> select * from tabela where campo like 'MAR_A';

CAMPO
------------------------------
MARIA
MARTA

SQL> select * from tabela where campo like 'MAR%A';

CAMPO
------------------------------
MARIA
MARTA
MARCIA


Agora, digamos que eu queira buscar todos as linhas que tiveram 20% - Vamos ao exemplo:

Código: Selecionar todos
SQL> select * from tabela where campo like '20%';

CAMPO
------------------------------
20% JUROS
200% MEDIA
20% DESCONTO

ERRO! Trouxe também 200%!!! Não é o que queremos! Vamos então "escapar" esse caracter da consulta:

Código: Selecionar todos
SQL> select * from tabela where campo like '20~%%' escape '~';

CAMPO
------------------------------
20% JUROS
20% DESCONTO
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered

Mensagemem Qui, 08 Jul 2004 10:08 am

Apenas para complementar:

Se você está no SQL*Plus, pode usar o SET ESCAPE x (onde x é um caractere). Dai esse caractere passa a ser o curinga.

Código: Selecionar todos
SET ESCAPE '$'
SELECT * FROM TABELA WHERE COL LIKE '$10%$'
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


Voltar para SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron