Re: CASE en ORDER BY

From: Jaime Casanova <jaime(at)2ndquadrant(dot)com>
To: cDaniel GE <cdanielg(at)gmail(dot)com>
Cc: POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: CASE en ORDER BY
Date: 2014-02-11 23:39:45
Message-ID: CAJKUy5iXmE7QQnWmLjaY=R8PJ=nA2vw0WhuSQ1o9uhnPF23qrQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2014-02-11 17:17 GMT-05:00 cDaniel GE <cdanielg(at)gmail(dot)com>:
>
> 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;
>

no hay necesidad de usar un cursor, puedes usar un for, algo como

for _amort in select * from .... loop
/* contenido */
end loop;

http://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-RECORDS-ITERATING

> order by case
> when modo =1 then fecha asc
> else fecha desc end;

y funciona tambien si haces esto:

for _amort in execute 'select * from tabla where condiciones order by
fecha ' || case modo when 1 then ' asc ' else ' desc ' loop
end loop;

y puedes hacer lo mismo con cursores

open _cur_amort for execute var_consulta_armada

--
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
Phone: +593 4 5107566 Cell: +593 987171157

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2014-02-11 23:43:52 Re: Query lenta
Previous Message cDaniel GE 2014-02-11 22:30:00 Re: CASE en ORDER BY