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] >
