[firebase-br] RES: Coalesce Null?

MAURICIO COSTA maximmumsistemas em gmail.com
Qui Ago 23 19:53:37 -03 2012


Dá uma olhada no código abaixo e verifica se isso resolve o probelma.
select first 1 coalesce(G.leitura, 0) anterior
from gas G
where G.cod_apto = :VarCod_apto
union Select '0' as anterior From RDB$DATABASE
order by 1 desc

Em 23 de agosto de 2012 19:34, André Conrado <acf em andreconrado.net>escreveu:

> Zottis, o que ocorre é que quando não há registros o COALESCE nem é
> chamado, não há informação para ele analisar. O uso da função agregada
> é um "truque" para que pelo menos uma linha seja executada.
>
> Vou passa novamente os comandos pq coloquei as funções na ordem errada:
>
> select coalesce(max(anterior),0) from (select first 1 leitura anterior from
> gas where cod_apto = :VarCod_apto order by 1 desc)
>
> A função MAX precisa vir primeiro para que a função COALESCE tenho
> algo para analisar.
>
> Abçs
>
> Em 23 de agosto de 2012 18:47, Zottis <bzottis em ig.com.br> escreveu:
> > Isso que eu não estou entendendo.
> > O COALESCE não seria para resolver a questão do NULL?
> >
> > Vou tentar e ver se da certo, aviso na lista amanhã.
> >
> > Obrigado a todos que responderam
> >
> >
> > -----Mensagem original-----
> > De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
> Em
> > nome de André Conrado
> > Enviada em: quinta-feira, 23 de agosto de 2012 17:48
> > Para: FireBase
> > Assunto: Re: [firebase-br] Coalesce Null?
> >
> > Tenta assim:
> >
> > select max(coalesce(anterior,0)) from (select first 1 leitura anterior
> from
> > gas where cod_apto = :VarCod_apto order by 1 desc)
> >
> > abçs
> >
> >
> > Em 23 de agosto de 2012 17:29, Gladiston Santana <gladiston em vidy.com.br>
> > escreveu:
> >> Não, porque nenhum registro foi encontrado.
> >> Se estiver tentando a sentença dentro de uma procedure inicialize-a
> >> com valor zero (ou nulo) faça o select, se permanecer zero você
> prossegue,
> > ex:
> >> anterior=0
> >> select first 1 coalesce(leitura,0) as anterior from gas into :anterior
> >>
> >> se nenhuma linha for atingida pelo seu select, a variavel anterior
> >> permanecerá com o valor com o qual foi inicializada.
> >>
> >> Contudo, me parece que você deseja apenas sabe se dados existem, neste
> >> caso recomendo o exists if [not] exists(select blablabla) then begin
> >> ...
> >> end
> >>
> >> Os algoritimos para checar existencia de dados são mais rapidos do que
> >> um select trivial com first e order.
> >>
> >> []'s e sucesso.
> >>
> >>
> >> Em 23 de agosto de 2012 12:52, Zottis <bzottis em ig.com.br> escreveu:
> >>
> >>> Pessoal, o comando abaixo não deveria retornar “0”se fosse nullo?
> >>>
> >>>
> >>>
> >>> Mas esta retornando nullo
> >>>
> >>>
> >>>
> >>> select first 1 coalesce(G.leitura, 0) anterior
> >>>
> >>> from gas G
> >>>
> >>> where G.cod_apto = :VarCod_apto
> >>>
> >>> order by 1 desc
> >>>
> >>> ______________________________________________
> >>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >>> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >>> http://www.firebase.com.br/fb/artigo.php?id=1107
> >>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >>>
> >> ______________________________________________
> >> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >> http://www.firebase.com.br/fb/artigo.php?id=1107
> >> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br Para
> > saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista