fiz a seguinte função

CREATE OR REPLACE FUNCTION csw(boolean, anyelement, anyelement)
RETURNS anyelement AS
   'select case when $1 then $2 else $3 end;'
LANGUAGE 'sql' VOLATILE;

Quando eu passo os paramentros select csw( c1 + c2 > 0 ,c1/c2,0) from
tabela; gera o sequinte erro

ERROR: division by zero
SQL state: 22012

c1 e c2 são campos de uma tabela e as vezes os dois estão zerados ele
teria que executar a codição e verificar que c1 + c2 não é maior que 0 e
  retorna zero.

O que eu gostaria de fazer é ao inves de fazer case a=a when then a else
  b end; eu gostaria de subustuir a funcao case  para que ficasse assim
csw(a=a,a,b) se qlguem puder me ajudar grato.




_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a