Saludos. yo lo haria menos complicado:
begin return query select c1,c2 from tabla where c1='ME' and c2='2013' AND $1='1' UNION ALL select c1,c2 from tabla where c1='ME' AND $1 !='1' end; $BODY$ LANGUAGE plpgsql VOLATILE COST 100 ROWS 1000; El 22 de septiembre de 2014, 16:19, Hellmuth Vargas <hiv...@gmail.com> escribió: > > Hola Lista > > Y asi: > > begin > > return query > select c1,c2 from tabla where c1='ME' and case $1 when '1' then > c2='2013' > else true end; > end; > > > > > El 22 de septiembre de 2014, 14:17, Alvaro Herrera< > alvhe...@2ndquadrant.com> escribió: > > Felipe Araoz Ramos escribió: >> > Buen dias amigos del foro >> > >> > Estoy queriendo hacer mas flexible mi función y quiero hacer algo como >> > esto; anidar select dentro de un bloque case,... es posible hacer esto >> > >> > begin >> > return query >> > case when $1='1' then >> > select c1,c2 from tabla where c1='ME' and c2='2013' >> > else >> > select c1,c2 from tabla where c1='ME' >> > end; >> > end; >> >> Me parece que no debería funcionar, pero sí lo siguiente: >> >> begin >> case $1 when '1' then >> return query >> select c1,c2 from tabla where c1='ME' and c2='2013'; >> else >> return query >> select c1,c2 from tabla where c1='ME'; >> end case; >> end; >> >> Nota que el CASE que se está usando aquí no es el de SQL, sino el de >> plpgsql, y por eso tienes que terminarlo con END CASE en lugar de END, y >> la razón por la que tienes que poner los ; al final de cada RETURN >> (además de poner el RETURN en cada brazo en lugar de uno solo). >> >> Mira en >> www.postgresql.org/docs/9.3/static/plpgsql-control-structures.html >> >> -- >> Álvaro Herrera http://www.2ndQuadrant.com/ >> PostgreSQL Development, 24x7 Support, Training & Services >> >> - >> Enviado a la lista de correo pgsql-es-ayuda ( >> pgsql-es-ayuda@postgresql.org) >> Para cambiar tu suscripción: >> http://www.postgresql.org/mailpref/pgsql-es-ayuda >> > > > > -- > Cordialmente, > > Ing. Hellmuth I. Vargas S. > Esp. Telemática y Negocios por Internet > Oracle Database 10g Administrator Certified Associate > PostgreSQL DBA > > -- *Ing. Eduardo Reyes* Analista Programador. (809) 607-1961 ere...@h-rivera.com