From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Haroldo Stenger <haroldo(dot)stenger(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: función csvstring_to_recordset |
Date: | 2006-07-19 14:56:14 |
Message-ID: | 20060719145614.GP4963@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Haroldo Stenger escribió:
> Quería pensar y resolverlo sólo con herramientas de SQL, así que
> inventé esto que puede resultar útil a alguien (además de a mí, y al
> que preguntó ;-) )
>
> Tuve que lidiar con que no encontré ninguna función de postgresql que
> me dijera cuántas veces se repite una sub-cadena (la coma) en una
> cadena.
>
> CREATE OR REPLACE FUNCTION csvstring_to_recordset(text)
> RETURNS SETOF text AS
> $BODY$
> select split_part($1, ',' , x.i) from (select
> generate_series(1, (length($1)-length(replace($1, ',' , '' )) ) +1)
> as i) x
> $BODY$
> LANGUAGE 'sql' IMMUTABLE;
Hmm, que pasa si hay una coma dentro de un string rodeado por comillas?
O sea esto
"Perez, Pedro",204-5031,"Victoria St.,290"
deben ser tres campos, no cinco.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2006-07-19 15:06:50 | Re: INSERT INTO multiples |
Previous Message | Alvaro Herrera | 2006-07-19 14:49:44 | Re: Conversion de tipos |