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" <[email protected]>
PARA: [email protected]
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 ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a