[firebase-br] Iif e case

Guionardo Furlan guionardo em gmail.com
Sex Set 8 22:17:23 -03 2006


Uma dúvida...

Se eu fizer

SELECT CASE
  WHEN VALOR<0 THEN (VALOR*-1)
  WHEN VALOR>0 THEN (VALOR)
  END AS VALOR_POS
...

Se VALOR=0 então não vai haver opção para o CASE.
Nesse caso, o valor de retorno será NULL ou será gerada uma exceção?


Em 05/09/06, Murilo Bento<murilo em cprinformatica.com.br> escreveu:
> problema resolvido =D
>
> select case
>             when vl_valor < 0 then (vl_valor * -1)
>             when vl_valor >= 0 then vl_valor
>             end as valor_positivo
> from....
>
>
>
>
>
>
> "Murilo Bento" <murilo em cprinformatica.com.br>
> escreveu na mensagem news:edkj63$9qd$1 em sea.gmane.org...
> > No Firebird 2.0 foi inserida a função Iif, eu naõ cheguei a testar, mas
> > tenho 2 dúvidas..
> >
> > 1ª - Eu poderia usar-lo exatamente como no delphi, por exemplo, assim :
> >
> > select Iif(vl_valor < 0, vl_valor, (vl_valor * -1)) from ........
> >
> >
> > ??????????
> >
> > 2ª - No Firebird 1.5?? Nõa há o Iif, sei que tem o case,que muito dizem
> > que é a mesma idéia, como eu faria o select acima no Firebird 1.5, é claro
> > possivelmente usando o case, pois acontece que o valor tem sempre que vir
> > positivo, estou usando a função abs de uma UDF, mas no dbExpress está
> > dando o seguinte erro:
> >
> > dbExpress Error:  Invalid Precision.
> >
> > Não sei o motivo, mas sei que é o abs, por isso gostaria de não precisar o
> > usar a função, e sim um comando mais "simples", que me da a garantia de
> > que não vai ocorrer este erro.
> >
> >
> > E é calro se alguém souber como resolver o erro do abs com o dbExpress
> > isso seria muito bem vindo, por que já que ela já está sendo usada no
> > sistema, não haveria problema.
> >
> >
> > Obrigado.
> >
> >
> >
> >
>
>
> --------------------------------------------------------------------------------
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>


-- 
Timeo hominem unius libri
Cogito ergo sum - Carpe diem

[]s
Guionardo Furlan
http://guionardo.antiblog.com




Mais detalhes sobre a lista de discussão lista