Vous n'êtes pas identifié(e).

#1 08/12/2008 14:49:03

frinux
Membre

trier un tableau d'éléments composites en pl/pgsql

Bonjour,
je construis dans une procédure stockée un tableau d'éléments composites :

DROP TYPE IF EXISTS horaire_periode CASCADE;
CREATE TYPE horaire_periode AS
(
    date_debut      timestamp without time ZONE,
    date_fin        timestamp without time ZONE,
    est_particulier BOOLEAN,
    est_travaille   BOOLEAN
);
ALTER TYPE horaire_periode OWNER TO "admin";

--> periodes horaire_periode[];

J'aimerai trier ce tableau selon le critère date_debut par exemple. J'ai vu quelques exemples sur Internet, dont celui-ci :

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
);

Mais je n'arrive pas à l'adapter à mon cas (car je ne comprends pas tout). Merci

Hors ligne

#2 03/04/2009 11:49:57

gleu
Administrateur

Re : trier un tableau d'éléments composites en pl/pgsql

L'exemple fonctionne sur des types simples comme des entiers car PostgreSQL sait comment trier des entiers. Mais comment pourrait-il savoir comment trier une donnée de type horaire_periode ?


Guillaume.

Hors ligne

#3 03/04/2009 11:53:42

gleu
Administrateur

Re : trier un tableau d'éléments composites en pl/pgsql

Ce que je veux dire, c'est qu'il faut spécifier comment faire le tri. Par exemple, moi, je ne vais pas si vous voulez trier par date de début, date de fin voire même par les deux dernières colonnes...


Guillaume.

Hors ligne

Pied de page des forums