[firebase-br] RES: Coalesce Null?

André Conrado acf em andreconrado.net
Qui Ago 23 19:34:30 -03 2012


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




Mais detalhes sobre a lista de discussão lista