sql >> Base de Datos >  >> RDS >> PostgreSQL

Ordenar elementos de matriz

La mejor manera de ordenar una matriz de números enteros es, sin duda, utilizar la extensión intarray, que lo hará mucho, mucho, mucho más rápido que cualquier formulación SQL:

CREATE EXTENSION intarray;

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

Una función que funciona para cualquier tipo de arreglo es:

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

(Reemplacé mi versión con la ligeramente más rápida de Pavel después de una discusión en otro lugar).