Re: Pgplsql extraño

From: "Jairo Grateron" <jgrateron(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Pgplsql extraño
Date: 2007-01-25 16:23:46
Message-ID: b6f02a050701250823o330d84bdp9b2a25ef34e51db5@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Ya la probe y funciona de maravilla, hize una variante para concatenar
enteros
---------------------------------------------------------

CREATE OR REPLACE FUNCTION f_concat_int(text, int4)
RETURNS text AS
$BODY$BEGIN
IF $1 IS NULL AND $2 IS NULL THEN
RETURN '';
END IF;
IF $1 IS NULL THEN
RETURN to_char($2,'FM999');
END IF;
IF $2 IS NULL THEN
RETURN $1;
END IF;
RETURN $1 || ',' || to_char($2,'FM999');
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE;

---------------------------------------------------------
CREATE AGGREGATE concat_int(
BASETYPE=int4,
SFUNC=f_concat_int,
STYPE=text
);
---------------------------------------------------------

select concat_int(id) as idUsuarios_con_coma from Usuarios

idUsuarios_con_coma
--------------------
1,23,4,5,6,7,8
(1 fila)

No se si es la mejor manera para convertir de enteros a string...

El día 24/01/07, Alvaro Herrera <alvherre(at)commandprompt(dot)com> escribió:
>
> Alvaro Herrera escribió:
> > Jaime Casanova escribió:
> >
> > > Alguno de ustedes reviso la solución de Alvaro? se la ve
> > > interesante... no la entendi a decir verdad pero hoy no me duermo
> > > hasta entenderla...
> >
> > Pero como, si es muy simple :-) Lo unico que hace es crear una funcion
> > tal que dados dos textos no nulos, entrega un texto que es la
> > concatenacion de los dos separados por una coma. Si uno de ellos es
> > nulo, entonces entrega el otro sin ninguna coma. Es decir
> >
> > concat_comma('foo', 'bar') -> 'foo, bar'
> > concat_comma(null, 'baz') -> 'baz'
>
> Me acabo de dar cuenta que hay un problema; la funcion debe ser
> declarada CALLED ON NULL INPUT para que esto funcione.
>
> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 3: si publicas/lees desde Usenet, por favor envía "subscribe-nomail"
> a majordomo(at)postgresql(dot)org para que tus mensajes puedan llegar
> a los suscriptores de la lista
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message José Manuel Ruiz 2007-01-25 16:33:09 Re: Borrado de base de datos
Previous Message Raitme 2007-01-25 15:37:18 me podian ayudar a encontrar informacion sobre como crear reglas para incluir, modificar y eliminar