Falla si le coloco los operadores de dirección, si no se los coloco si
compila.
order by case p_modo_pago when 1 then fecha asc else fecha desc end;


_________________
····· ¢Ð@ŋı€łg ·····
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬

"Ningún hombre es más grande que el que se vence a sí mismo por cumplir con
su deber.."
Eugenio María De Hostos

[Imprima sólo si es necesario, cuidemos nuestro planeta]


2014-02-11 17:47 GMT-04:30 cDaniel GE <[email protected]>:

> Buenas tardes amigos tengo un problema al querer poner un *case* en el *order
> by* de una consulta.
>
> Resulta que tengo una función que me sirve para 2 cosas distintas con tan
> solo cambiarle el sentido al orden del query que uso.
>
> algo como esto :
>
> CREATE OR REPLACE FUNCTION pagar( id_deuda integer, modo integer, monto
> double precision)
> RETURNS double precision AS
> $BODY$
>
> declare
> _cur_amort refcursor;
> _amort tabla_amortizacion%rowtype;
>
> open
>       _cur_amort
>       for
>         select
>             *
>         from
>             tabla_amortizacion
>         where
>             deuda_id = id_deuda
>             order by case
> when modo =1 then fecha asc
>  else  fecha desc end;
>       loop
> /*  contenido */
>
>
>      end loop;
> close _cur_amort;
> return monto;
> END
>   $BODY$
>   LANGUAGE plpgsql VOLATILE
>   COST 100;
>
>
> PD:
> *Intenté colocar  [if (modo = 1 ) then ] luego del for y tampoco me lo
> permitió. *
> *Otra cosa que intenté fue colocar el resultado del case entre comillas y
> tampoco. *
>
> _________________
> ····· ¢Ð@ŋı€łg ·····
> ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
>
> "Ningún hombre es más grande que el que se vence a sí mismo por cumplir
> con su deber.."
> Eugenio María De Hostos
>
> [Imprima sólo si es necesario, cuidemos nuestro planeta]
>

Responder a