CLAUSULA LIKE

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
ANDREGOUVEIA
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Seg, 25 Jul 2011 8:40 am
Localização: FORTALEZA

Prezados,
Acidentalmente, infelizmente, descobri que um relatório estava retornando um número de registros incorreto. Ao analisar a query descobri que o problema estava na cláusula LIKE, ao utilizar o operador %, os campos que estavam com valor nulo não estavam retornando na consulta. É para ser desse jeito mesmo ? Ou isso é um bug do Oracle ?

Att,
André Gouveia.
burga
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Qui, 26 Nov 2009 1:05 pm
Localização: SP
Ricardo H. Tajiri

É isso mesmo, pra retornar valores nulos você deve usar o IS NULL (Ex.: CAMPO IS NULL)
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

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

Isso, você pode fazer assim no seu caso:

Selecionar tudo

WHERE campo LIKE 'abc%'
  OR campo IS NULL
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

acho que NVL também resolveria

Selecionar tudo

nvl(campo, 'x') like '%abc%';
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

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

Mas pelo que eu entendi, ele QUER trazer os nulos. Dessa forma os nulos vão continuar não aparecendo... :roll:
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

uhm é verdade
ANDREGOUVEIA
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Seg, 25 Jul 2011 8:40 am
Localização: FORTALEZA

Prezados, agradeço a colaboração de todos, na realidade a minha dúvida era se quando fosse trabalhar com o LIKE teri a que tratar os nulos a parte, pois vi na prática que eles não retornam com o %. Pelas respostas vi terei que adicionar mais uma condição na clausula WHERE.
burga
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Qui, 26 Nov 2009 1:05 pm
Localização: SP
Ricardo H. Tajiri

com o NVL seria

Selecionar tudo

nvl(campo, 'abc') like '%abc%'

:-o
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes