Re: select from lista de valores

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.

In response to

Browse pgsql-es-ayuda by date

  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