PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Classificando elementos da matriz


A melhor maneira de ordenar um array de inteiros é sem dúvida usar a extensão intarray, que fará isso muito, muito, muito mais rápido do que qualquer formulação SQL:
CREATE EXTENSION intarray;

SELECT sort( ARRAY[4,3,2,1] );

Uma função que funciona para qualquer tipo de array é:
CREATE OR REPLACE FUNCTION array_sort (ANYARRAY)
RETURNS ANYARRAY LANGUAGE SQL
AS $$
SELECT ARRAY(SELECT unnest($1) ORDER BY 1)
$$;

(Eu substituí minha versão pela de Pavel um pouco mais rápida após discussão em outro lugar).