PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Ordinamento degli elementi dell'array

Il modo migliore per ordinare un array di numeri interi è senza dubbio usare l'estensione intarray, che lo farà molto, molto, molto più velocemente di qualsiasi formulazione SQL:

CREATE EXTENSION intarray;

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

Una funzione che funziona per qualsiasi tipo di array è:

CREATE OR REPLACE FUNCTION array_sort (ANYARRAY)
RETURNS ANYARRAY LANGUAGE SQL
AS $$
SELECT ARRAY(SELECT unnest($1) ORDER BY 1)
$$;

(Ho sostituito la mia versione con quella leggermente più veloce di Pavel dopo averne discusso altrove).