- Este tópico contém 4 respostas, 5 vozes e foi atualizado pela última vez 17 anos, 1 mês atrás por marcelomirandola.
-
AutorPosts
-
24 de novembro de 2007 às 6:40 pm #80850cpradoParticipante
Pessoal seguinte qdo rodo o select logo abaixo ele esta me trazendo os dados devidamente relacionados, ou melho dizendo quse todos os tados pois a casos em que os campos OPÇÃO2 e OPÇÃO3 estão nulos e ai ele não consegue fazer a comparação
“and ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso2 = B.Codigo
and ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso3 = C.Codigo”
e consequente mente não me traz os valores…mas quero que mesmo que os campos OPÇÃO2 e OPÇÃO3 sejam nulos os mesmo sejam apresentados…Segue abaixo o select
SELECT FichaUID,
CodInscricao,
NomeCandidato,
DataNasc,
RG,
CPF,
Sexo,
TelContato,
TelCelular,
Endereco,
NumeroCasa,
BlocoApto,
Bairro,
CEP,
Cidade,
Estado,
Email,
OpcaoCurso1,
a.NomeCurso,
a.Periodo,
OpcaoCurso2,
b.NomeCurso,
b.Periodo,
OpcaoCurso3,
c.NomeCurso,
c.Periodo,
Pago, DataCadastro, CodInscricao_OLD, NrNossNr, Sala, Carteira
FROM ProcessoSeletivo.ProcessoSeletivo2008,
ProcessoSeletivo.Cursos A,
ProcessoSeletivo.Cursos b,
ProcessoSeletivo.Cursos c
WHERE ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso1 = A.Codigo
and ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso2 = B.Codigo
and ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso3 = C.Codigo
AND ProcessoSeletivo.ProcessoSeletivo2008.Pago = ‘1’
order by 326 de novembro de 2007 às 4:45 am #80852DanielBParticipanteB.codigo y C.codigo pueden se nulos tambien?
26 de novembro de 2007 às 2:32 pm #80853IshiiParticipanteSe entendi direito acho que se vc tentar isso deve resolver:
and nvl(ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso2,B.Codigo) = B.Codigo
and nvl(ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso3, C.Codigo) = C.Codigocom isso mesmo que os campos ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso2 e 3 estejam nulos a condição será respeitada.
[]s Ishii
27 de novembro de 2007 às 2:36 am #80868LoadingXpParticipanteSó para ficar claro o comando NVL substitui o NULL por alguma coisa…
Dá uma olhada nos comandos NVL e NVL2Luciano Alvarenga Maciel Pires
http://www.fulloracle.blogspot.com
lucianoalvarenga@gmail.com10 de dezembro de 2007 às 4:04 pm #80912marcelomirandolaParticipanteCaro colega cprado, acho que entendi a sua dúvida, e já passei por isso.
Quando você restringe um campo na cláusula where de uma tabela e o mesmo é nulo, o resultado não aparece. Este tipo de Join ( o mais comum ) é chamado de Inner Join.
Agora vamos ao que interessa:
Quando você quer que o resultado apareça mesmo o valor da restrição sendo nulo, você deve usar o Outer Join (+) da seguinte forma:
De:
“and ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso2 = B.Codigo
and ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso3 = C.Codigo”Para:
“and ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso2 (+) = B.Codigo
and ProcessoSeletivo.ProcessoSeletivo2008.OpcaoCurso3 (+) = C.Codigo”Espero ter ajudado.
Marcelo Mirandola.
-
AutorPosts
- Você deve fazer login para responder a este tópico.