PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Trier les éléments du tableau

La meilleure façon de trier un tableau d'entiers est sans aucun doute d'utiliser l'extension intraray, qui le fera beaucoup, beaucoup, beaucoup plus rapidement que n'importe quelle formulation SQL :

CREATE EXTENSION intarray;

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

Une fonction qui fonctionne pour n'importe quel type de tableau est :

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

(J'ai remplacé ma version par celle légèrement plus rapide de Pavel après discussion ailleurs).