Vinicius escreveu:
> 
> Pessoal, precisei ordenar um array e vi que na versão 8.2 não existe nada 
> parecido com "Array_Sort()", parece que na versão 8.3 já tem isso pronto.
> 
> A Solução que eu encontrei foi criar uma função "na unha" mesmo, para ordenar 
> o meu array(oq não é muito simples ! ), mas não sei se esta seria a melhor 
> solução...Alguém já precisou disso ? qual seria a melhor solução na 8.2 ?
> 


Você não mencionou qual o tipo de dado de seu array. Se for um 
array de inteiros veja a função sort em contrib/intarray.

Ou, no caso geral, esta função SQL:

CREATE OR REPLACE FUNCTION array_sort (ANYARRAY)
RETURNS ANYARRAY
LANGUAGE SQL
AS $$
SELECT ARRAY(
     SELECT $1[s.i] AS "foo"
     FROM generate_series(array_lower($1,1), array_upper($1,1)) 
AS s(i)
     ORDER BY foo);
$$;

bdteste=# SELECT array_sort(ARRAY['c','b','a']);
  array_sort
------------
  {a,b,c}
(1 registro)

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a