Ca dépend si le select peut être fait à l'intérieur de la fonction ou si la fonction doit recevoir le résultat du select en entrée.
Dans le 1er cas ça revient à du procédural comme ça pourrait être écrit dans n'importe quel langage de script. Pas besoin de curseur, une simple boucle basée FOR nombre IN SELECT.... suffirait.
Dans le 2eme cas qui est beaucoup plus générique, ça parait faisable avec une fonction d'agrégation (CREATE AGGREGATE)
Avec cette méthode tu devrais pourrais faire
select mafonction(nombre) FROM table_des_nombres
et ça renverrait directement le tableau, de la même manière que AVG() renverrait la moyenne des nombres ou MAX() le maximum.
Partager