Em 25 de março de 2010 13:43, Marcelo Cardoso de Souza
<marceloc...@gmail.com> escreveu:
> Mas ai que vem a questão como saber quais campos mostrar, pois quero somente
> os que foram alterados.
>


Talvez seja mais fácil verificar na própria aplicação mas se você
deseja fazer na própria consulta use CASE.

Por ex.:

SELECT
   CASE WHEN nova.id_imovel = velha.id_imovel THEN NULL ELSE 'De ' ||
velha.id_imovel || ' para ' || nova.id_imovel END AS id_imovel,
   CASE WHEN nova.id_endereco = velha.id_endereco THEN NULL ELSE 'De '
|| velha.id_endereco || ' para ' || nova.id_endereco END AS
id_endereco,
   CASE WHEN nova.nm_imovel = velha.nm_imovel THEN NULL ELSE 'De ' ||
velha.nm_imovel || ' para ' || nova.nm_imovel END AS nm_imovel,
   ...
   CASE WHEN nova.de_complementar = velha.de_complementar THEN NULL
ELSE 'De ' || velha.de_complementar || ' para ' ||
nova.de_complementar END AS de_complementar,
   nova.dt_alteracao
FROM sua_tabela nova JOIN sua_tabela velha ON nova.id_imovel_anterior
= velha.id_imovel;

Osvaldo
PS. Os campos não alterados conterão NULL.
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a