From: | Oswaldo Hernández <listas(at)soft-com(dot)es> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: select from lista de valores |
Date: | 2010-02-03 17:39:36 |
Message-ID: | 4B69B4D8.9090306@soft-com.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Alvaro Herrera escribió:
> Oswaldo Hernández escribió:
>
>> Acabo de ver que en 8.4 existe la funcion 'unnest(array[])' que hace
>> exactamente eso, separar los valores de un array en filas.
>>
>> Desgraciadamente todavía ando con 8.3 :(
>
> En 8.3 puedes escribir una función unnest fácilmente en plpgsql. Es
> algo así como
>
> select $1[i] from generate_series(array_lower($1, 1), array_upper($1, 1)) i;
>
Como afinas Alvaro!
La función que envié antes quedaría entonces así:
CREATE OR REPLACE FUNCTION public.unnest(IN a anyarray, OUT v
anyelement) RETURNS SETOF anyelement AS
$BODY$
/******************************************
emulacion de funcion unnest(array[]) de 8.4
para utilizar en versiones inferiores
*******************************************/
select $1[i] from generate_series(array_lower($1, 1), array_upper($1, 1)) i;
$BODY$
LANGUAGE 'sql' VOLATILE;
ALTER FUNCTION public.unnest(anyarray) OWNER TO postgres;
--
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
PD:
Antes de imprimir este mensaje, asegúrese de que es necesario.
El medio ambiente está en nuestra mano.
From | Date | Subject | |
---|---|---|---|
Next Message | Emanuel Calvo Franco | 2010-02-03 18:22:14 | Re: select from lista de valores |
Previous Message | Xavier Guerra | 2010-02-03 17:04:42 | Re: Ayuda con Select |