Em Sáb, 2009-01-17 às 23:56 -0200, Euler Taveira de Oliveira escreveu:
> Fernando Brombatti escreveu:
> > Imaginemos 3 valores: 2, 3 e -10; o SUM() dessa brincadeira é -5, logo
> > não retornará 0 como o colega estava querendo (ao menos foi o que deixou
> > transparecer), mas sim retornará -5. O COALESCE() retorna o primeiro
> > valor NAO-NULO de uma seqüência de valores.
> > 
> É claro que foi uma suposição baseado no nome da tabela (cheque_recebido) e
> campo (valor). Em um modelo de dados consistente o campo 'valor' teria duas
> restrições (NOT NULL e > 0) e, assim, ele não precisaria do COALESCE e nem do
> CASE. Mas uma coisa é fato: o COALESCE gasta menos ciclos de CPU do que o CASE
> (acho que era isso que ele queria saber).

Correto, a minha principal preocupação em melhoria foi em relação
questão ao desempenho.

Quanto ao haver utilizado o CASE foi por considerar a inexistência de
cheques de um determinado cliente, o que provocaria o retorno de um
valor NULO e neste caso deve retornar ZERO.

Assim sendo, o COALESCE, me pareceu ser uma melhor opção do que o CASE.

Abrigado a todos pela colaboração.

-- 
Antonio Prado


_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a