Comando NVL

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
jctq
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 27
Registrado em: Qua, 08 Fev 2006 1:21 pm
Localização: São Gonçalo
Att,
Julio Quintão

Bom dia Gente , estou eu aqui mais uma vez pertubando vocês.
Mas vou lá ....

Estou com um problema aqui em um SQL meu, tenho um parametro aqui no meu Select que pode voltar nulo e caso volte nulo , tenho que pesquisar em outra tabela os possiveis valores para este parametro.

Tentei fazer isso

Selecionar tudo

 NVL (PARAMETRO,'SELECT * FROM TABELA')
Não consegui, queria ajuda de vocês para responder se seria possivel fazer isso de outra maneira ou eu estou usando o comando NVL errado.

Espero uma resposta !!!

E muito obrigado desde já ....
:lol:
Valdo
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Sex, 19 Ago 2005 11:08 am
Localização: Medianeira/pr

Cara, uma sugestão seria você criar uma função no banco e chama-la quando o parametro fosse null.
Ex.:

Selecionar tudo

SELECT * FROM ra_salesreps
WHERE name IN nvl(null,pk_calcula_cota.get_vendedor(1000))
Espero que isso ajude.
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

Mais fácil ainda:
Pode usar CASE WHEN. Dai ele aceita colocar um sub-select dentro.
Veja o exemplo:

Selecionar tudo

SQL> SELECT 
  2    A.ENAME
  3  , A.COMM
  4  , CASE WHEN A.COMM IS NULL THEN (SELECT B.JOB 
  5                                   FROM EMP B 
  6                                   WHERE A.EMPNO=B.EMPNO)
  7    END CONSULTA 
  8  FROM EMP A
  9  /

ENAME            COMM CONSULTA
---------- ---------- ---------
SMITH                 CLERK
ALLEN             300
WARD              500
JONES                 MANAGER
MARTIN           1400
BLAKE                 MANAGER
CLARK                 MANAGER
SCOTT                 ANALYST
KING                  PRESIDENT
TURNER              0
ADAMS                 CLERK
JAMES                 CLERK
FORD                  ANALYST
MILLER                CLERK

14 rows selected.

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

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