2008/7/8 Matthew Dennis <mdennis(at)merfer(dot)net>:
> I'm likely overlooking something, but I can't seem to find a function to
> sort a varchar array. Something like "select sort('{y,z,x}'::varchar[])" =>
> {'x','y','z'}.
>
create function sort(anyarray)
returns anyarray as $$
select array(select $1[i] from generate_series(array_lower($1,1),
array_upper($1,1)) g(i) order by 1)
$$ language sql strict immutable;
postgres=# select sort(array[1,2,3,1]);
sort
-----------
{1,1,2,3}
(1 row)
postgres=# select sort(array['a','b','c','a']);
sort
-----------
{a,a,b,c}
(1 row)
Regards
Pavel Stehule