| From: | cDaniel GE <cdanielg(at)gmail(dot)com> | 
|---|---|
| To: | pgsql-es-ayuda(at)postgresql(dot)org | 
| Subject: | CASE en ORDER BY | 
| Date: | 2014-02-11 22:17:03 | 
| Message-ID: | CAJAbji+3Y32Hu4tbx=EAYNmaNZhGWNab_Gpy_XLJYSX_AYHEYw@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
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. *
_________________
····· ¢Ð(at)ŋı€ł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]
| From | Date | Subject | |
|---|---|---|---|
| Next Message | cDaniel GE | 2014-02-11 22:30:00 | Re: CASE en ORDER BY | 
| Previous Message | Lennin Caro | 2014-02-11 20:05:37 | Re: Query lenta |