Re: Passing a comma delimited list to a function

From: Joe Conway <mail(at)joeconway(dot)com>
To: A E <cooljoint(at)yahoo(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Passing a comma delimited list to a function
Date: 2004-01-03 23:10:11
Message-ID: 3FF74BD3.1030302@joeconway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

A E wrote:
> I was wondering if there was a function that handles list elements of
> a comma delimited list? I need to be able to pass values as a comma
> delimited list, count the number of values, and process the value of
> each.

You didn't mention a version, but in 7.4 you can do this:

create or replace function unravel(text) returns setof int as '
declare
v_list alias for $1;
v_delim text := '','';
v_arr text[];
begin
v_arr := string_to_array(v_list, v_delim);
for i in array_lower(v_arr, 1)..array_upper(v_arr, 1) loop
return next v_arr[i]::int;
end loop;
return;
end;
' language plpgsql;

regression=# select * from unravel('1,2,3,4,5');
unravel
---------
1
2
3
4
5
(5 rows)

HTH,

Joe

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Rory Campbell-Lange 2004-01-03 23:18:39 Re: Is my MySQL Gaining ?
Previous Message Mike Mascari 2004-01-03 23:07:48 Re: why the need for is null?