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
