query que gera uma lista com itens que existem e não existem

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Estanislau
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qui, 21 Fev 2008 11:28 am
Localização: são paulo -SP

Bom dia Colegas..

tenho alguns numeros ex: 1,3,4,5,10,11 etc, pretendo fazer um select numa tabela onde se existir o numero eu retorno por exempo o nome do cliente, caso contrario retorno "não existe". Como posso fazer isso..


abraços...
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

Selecionar tudo

select nvl(nome_cliente,'não existe') from clientes
agora se você usar o where com um codigo q não exista no seu banco a sua query não vai retornar nada nem um registro, inviabilizando você trazer o seu 'não existe'
Estanislau
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qui, 21 Fev 2008 11:28 am
Localização: são paulo -SP

quero passar uma lista de codigos, onde uns existem e outros não. exemplo:
cod retorno
1 nome1
2 não existe
3 nome 3
4 nome 4
5 não existe
...
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

explique seu problema pois a sua solução não vai rolar
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5018
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

Uma forma é fazer INSERTS dos números que você quiser pesquisar numa tabela temporária (Global Temporary Tables - leia aqui no forum sobre ela).

Daí fazerum OUTER JOIN com a tabela.
Caso fique NULL, daí quer dizer que não existe.
Exemplo:

TABELA TEMP:
COD_CLIENTE NUMBER;

TABELA CLIENTE:
COD_CLIENTE NUMBER;
NOME_CLIENTE VARCHAR2(100);

Selecionar tudo

select 
from a.COD_CLIENTE, NVL(b.NOME_CLIENTE,'Não existe')
  TEMP A
, CLIENTE B
where
  A.COD_CLIENTE=B.COD_CLIENTE(+)
Acho que dessa forma vai brilhar... :-D
ruevers
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 324
Registrado em: Sex, 02 Jun 2006 1:48 pm
Localização: sp
Contato:

Usa o DECODE.
procura no google o Documentação da Oracle que você acha varios exemplos.
Responder
  • Informação
  • Quem está online

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