|
||||
Ouverture de sessionNavigationContactez-nousAdministration du site : RechercheSujets du forumSujets actifsNouveaux sujets:SyndicationSondageQuelle est la version de PostgreSQL la plus répandue sur vos serveurs ? 8.3 10% 8.2 42% 8.1 40% 8.0 2% 7.4 6% 7.3 ou antérieure 0% Nombre de votes: 48 |
fonction retournant plusieurs lignesTechnique - Langages Procéduraux (PL) | fonction retournant plusieurs lignesPar jsubei le 02/05/2007 - 19:42 Bonjour à Tous, Mon problême est de creer une fonction retournant plusieures lignes. je vais essayer d'$etre clair et simple. J'ai un table contenant un grand nombre de données ainsi qu'un identifiant d'un ensemble auquel elle appartiennent donnee[id_donnee, id_groupe, valeur_donnee] j'ai une table décrivant des propriété de chaque groupe groupe[id_groupe, valeur_groupe] Jusque là , c'est assez habituel. Maintenant je souhaite pouvoir partitionner les donnees de chaque groupe en sous groupe suivant leurs valeurs. Pour cet exemple considèrons que les valeurs sont numériques et que je souhaite pouvoir sortir pour chaque groupe : le nombre de valeur de données supérieures, inférieures et égales à la valeur de mon groupe. donc pour chaque groupe j'ai besoin de sortir 3 lignes de résultats : et au final je souhaite une fonction du genre : Select groupe.id_groupe, groupe.valeur, ma_fonction() from groupe where groupe.valeur > 0 AND groupe.valeur < 1000; Voilà , je ne sais pas si je me suis fais bien comprendre .... Ensuite je sais faire une fonction, en plpgsql par exemple, qui retourne plusieurs ligne (avec un SET OF sur un type composite) donc à même de retourner pour UN groupe les infos que je souhaite. Et je ne parviens pas à imaginer comment l'utiliser pour pouvoir passer un tableau, ou un ensemble de groupe .... ou comment creer une fonction ma_fonction() qui utiliserait ma_fonction_groupe() pour retourner le résultat souhaité .... si vous avez des remarques et / ou des idées je vous serais très très reconnaissant !!! Merci a+! |
|||
© PostgreSQLFr, tous droits rĂ©servĂ©s.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.