On Wed, Jul 9, 2008 at 12:28 AM, Pavel Stehule <
[email protected]> wrote:
2008/7/8 Matthew Dennis <[email protected]>:
> 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
Thanks Pavel, I ended up writing a method pretty much like that. It seems like that would be inefficient though (works ok for my use though). Does anyone know if there are future plans to add an array_sort method?