Bom dia pessoal,
Eu tenho uma view que tem um campo chamado IMAGEM.
Acontece o seguinte: na tabela WEB_ESTAMPA onde está gravado o campo IMAGEM, possui os campos CÓDIGO e ESTAMPA.
Eu preciso comparar na view, se o campo WEB_ESTAMPA.CODIGO for VAZIO, ele vai buscar o campo WEB_ESTAMPA.ESTAMPA e comparar com um campo na view e o contrário disto que escrevi também.
Eu pensei em fazer um CASE WHEN depois do FROM TABELA, mas isso não funciona.
Alguém tem noção de como resolver isso. Não sei se ficou claro, qualquer coisa, perguntem aí.
Obrigado!!
Dúvida IF e ELSE
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother, o texto ficou meio confuso.
Passa mais detalhes pra gente.
Essa tabela, possui a estrutura abaixo?
E a view, é sobre qual tabela? quais os campos que ela exibe?
Passa mais detalhes pra gente.
Essa tabela, possui a estrutura abaixo?
Tabela:
WEB_ESTAMPA
Campos:
IMAGEM
CÓDIGO
ESTAMPA.
WEB_ESTAMPA
CODIGO
CD_ESTAMPA
IMAGEM
Até aí OK, quando o campo CODIGO não for preenchido, o campo CD_ESTAMPA será preenchido.
Na minha VIEW, eu preciso tratar justamente isso. Preciso trazer o campo imagem de todos os registros para minha view. Porém, eu preciso comparar o campo CODIGO ou então quando ele estiver vazio, comparar com o CD_ESTAMPA.
Se não ficou claro, me avisa por aqui. Talvez minha expressão está meio confusa.
Obrigado.
Justamente, existe a VIEW com os campos CÓDIGO e CD_ESTAMPA.
Obrigado.
Obrigado.
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
Bem,
se o problema é porque não traz retorno algum é porque você esta comparando algo(ou codigo ou estampa) com NULL.
Se TODAS informações da view possuir correspondencia com essa tabela(WEB_ESTAMPA), e consequentemente possuir imagem, então pode resolver seu problema com apenas um simples(4 na verdade) NVL().
Caso exista informação na view que possa não ter IMAGEM/correspondencia na tabela(WEB_ESTAMPA), pode usar um "artifício" para usar o outter join.
Faça um select de cada tabela , substituindo o null por algum valor , como por exemplo zero. Aí sim poderás fazer a junção.
Tipo:
se o problema é porque não traz retorno algum é porque você esta comparando algo(ou codigo ou estampa) com NULL.
Se TODAS informações da view possuir correspondencia com essa tabela(WEB_ESTAMPA), e consequentemente possuir imagem, então pode resolver seu problema com apenas um simples(4 na verdade) NVL().
Select v.* , we.imagem
from "view" v , WEB_ESTAMPA we
where nvl(v.cod,0) = nvl(we.cod,0)
and nvl(v.estampa,0) = nvl(we.estampa,0)
Faça um select de cada tabela , substituindo o null por algum valor , como por exemplo zero. Aí sim poderás fazer a junção.
Tipo:
SELECT v.* , we.IMAGEM FROM
(Select NVL(cod,0) cod
, NVL(estampa,0) estampa
, ....
from "view") v,
(Select NVL(cod,0) cod
, NVL(estampa,0) estampa
, IMAGEM
, ....
from WEB_ESTAMPA) we
where v.cod = we.cod (+)
and v.estampa = we.estampa (+)
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 9 visitantes