2012/5/21 Juliano Benvenuto Piovezan <[email protected]>

> 2012/5/21 Juliano Benvenuto Piovezan <[email protected]>:
> > 2012/5/21 Giovanni Sousa <[email protected]>:
> >> Pessoal,
> >>
> >> Tenho a seguinte consulta, no else quero retornar o valor do campo caso
> não
> >> seja zero. Não estou conseguindo...como deve ser?
> >>
> >>
> >>
> >> select A.COD_ABA, A.LABEL_ABA,
> >> CASE WHEN
> >>  COALESCE (A.cod_fun, 0)=0  THEN 'NÃO_MONITORADO'
> >> --ELSE (RETORNAR O VALOR DO CAMPO)
> >>      END
> >>  from tb_abas A
> >>
> >>
> >
> > Pelo que entendi, você quer retornar 'NÃO_MONITORADO' caso cod_fun
> > seja nulo, ou o próprio cod_fun caso contrário, é isso? Neste caso,
> > você estará tentando retornando um varchar OU um inteiro no mesmo
> > case, o que não é permitido. Para funcionar, você terá que fazer um
> > cast de cod_fun para varchar, ou rever a consulta.
>
> Ou simplificando esta consulta, utilizar o COALESCE diretamente.
>
> select A.COD_ABA, A.LABEL_ABA, COALESCE(A.cod_fun::varchar,
> 'NÃO_MONITORADO') from tb_abas A
>

Nesse caso não trata se ele for zero, mas parece ser suficiente (vai
depender do cenário).

Att.
--
Matheus de Oliveira
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a