Re: subconsulta a array de dos dimensiones

From: Alvaro Hilario <king314(at)gmail(dot)com>
To: juanramirez <juanramirez(at)cajazacate(dot)com(dot)sv>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: subconsulta a array de dos dimensiones
Date: 2013-01-27 22:06:27
Message-ID: CAO4LjX40ttSLDtD0ADOXeEyNNNBWF1R=YPPvN4vvR+kgSCFyqw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Puede que un crosstab también te ayude
http://www.postgresql.org/docs/9.2/static/tablefunc.html

El 21 de enero de 2013 19:39, juanramirez
<juanramirez(at)cajazacate(dot)com(dot)sv>escribió:

> El , Arcel Labrada Batista escribió:
>
> esto es los más cerca que pude de lo que quieres, quizas hay una mejor
>> forma pero bueno, ahi te va
>>
>> CREATE OR REPLACE FUNCTION f_aux() RETURNS text AS
>> $BODY$
>> DECLARE
>> a text;
>> b text;
>> c bigint;
>> BEGIN
>> c:=0;
>> b:='{';
>> for a in (select array[id,prestamo] from foo)
>> loop
>> c:=c+1;
>> b:= b||a;
>> end loop;
>> b:= b||'}';
>> RETURN b;
>> END;
>> $BODY$
>> LANGUAGE plpgsql;
>>
>> select * from f_aux();
>>
>> -------------------------
>>
>> DE: "juanramirez" <juanramirez(at)cajazacate(dot)com(dot)sv**>
>> PARA: pgsql-es-ayuda(at)postgresql(dot)org
>> ENVIADOS: Lunes, 21 de Enero 2013 13:55:46
>> ASUNTO: [pgsql-es-ayuda] subconsulta a array de dos dimensiones
>>
>>
>> Buen día Lista,
>>
>> Tengo ratos de inactividad, pero en la lista no en postgres, así que
>> esta
>> vez vengo con una consulta que no he logrado solucionar con san google!
>>
>> ¿como puedo crear un script para que genere un array de dos
>> dimensiones?
>>
>> tengo una tabla así:
>>
>> id, prestamo
>>
>> 1 , 1600015
>>
>> 2 , 1600875
>>
>> 3 , 1600658
>>
>> 4 , 1600016
>>
>> yo puedo hacer unir en un array el préstamo y el id así:
>>
>> select array[id,prestamo] from foo
>>
>> y me retorna
>>
>> {1 , 1600015}
>>
>> {2 , 1600875 }
>>
>> {3 , 1600658}
>>
>> {4 , 1600016}
>>
>> vuelvo a la pregunta, cómo puedo hacer que ese resultado se cree en un
>> solo registro en un campo array de dos dimensiones.
>>
>> el resultado que espero es este
>>
>> {{1,1600015},{2,001600875},{3,**001600658},{4,001600016}}
>>
>> como debo crear el script?
>>
>> he intentado esto:
>> select array(select array[id,prestamo] from foo)
>>
>> pero obtengo el siguiente error:
>>
>> ERROR: no se pudo encontrar un tipo de array para el tipo de dato
>> text[]
>>
>> -
>>
>
> Muchas gracias Arcel,
>
> Alguna manera de hacerlo más dinámico? porque los datos que puse son puro
> ejemplo, en la tabla real, hay más datos y lo que quiero hacer es manipular
> los datos de diferentes formas..
>
> No expuse el caso real, porque no le considere necesario, simplemente
> busco como crear un script con una subconsulta en un array de dos
> dimensiones..
>
>
>
>
> -
> 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<http://www.postgresql.org/mailpref/pgsql-es-ayuda>
>

--
Al_Hilario Company

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Anthony 2013-01-28 19:54:04 Re: recorrer una record
Previous Message Guillermo E. Villanueva 2013-01-23 17:31:12 Re: [pgsql-es-ayuda] Búsqueda Laboral