Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Uma coluna ou outra que não seja nulo


Felipe Matos

Pergunta

Olá Pessoaol,

Gostaria de saber se é possivel fazer em SQL uma consulta que retorne um campo ou o outro que não seja nulo. Pois na minha situação tenho um sistema de pagamentos, que podem ser feito a empresa ou a pessoa fisica, e tenho 3 tabelas, segue a estrutura abaixo:

pagamentos ( id, data, valor )

pag_juridico ( id_pag, cnpj )

pag_fisico ( id_pag, cpf )

no resultado da consulta gostaria que mostrasse assim:

id | data | valor | registro
1 | 2012-03-02 | 15.26 |  99.999.99/0001-99
2 | 2012-03-02 | 25.26 |  999.999.999-99
3 | 2012-03-02 | 35.26 |  99.999.99/0001-99
A consulta que tenho hoje é:
SELECT p.id, data, valor_nota, pj.cnpj, pf.cpf
FROM `pagamentos` p
LEFT JOIN pag_juridico pj
ON p.id = pj.id_pag
LEFT JOIN pag_fisico pf
ON p.id = pf.id_pag

Como eu modificaria essa coluna?

Desde já, obrigado!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Acabei descobrindo já...

Pra quem tiver a mesma dúvida, a solução é usar um "IF". Ficando assim a consulta:

SELECT p.id, data, valor_nota, 
IF (pj.cnpj IS NULL, pf.cpf, pj.cnpj) AS registro
FROM `pagamentos` p
LEFT JOIN pag_juridico pj
ON p.id = pj.id_pag
LEFT JOIN pag_fisico pf
ON p.id = pf.id_pag

Editado por Felipe Matos
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...