9.18. Fonctions renvoyant des ensembles

Cette section décrit des fonctions qui peuvent renvoyer plus d'une ligne. Actuellement, les seules fonctions dans cette classe sont les séries générant des fonctions, comme détaillé dans le Tableau 9.39, « Séries générant des fonctions ».

Tableau 9.39. Séries générant des fonctions

Fonction Type d'argument Type de retour Description
generate_series (début, fin) int ou bigint setof int ou setof bigint (même type qu'en argument) Génère une série de valeurs, commençant à début pour finir à fin avec un incrément de un.
generate_series (début, fin, étape) int ou bigint setof int ou setof bigint (même type qu'en argument) Génère une série de valeurs, commençant à début pour finir à fin avec un incrément de étape.

Quand étape est positif, aucune ligne n'est renvoyée si début est plus grand que fin. Au contraire, quand étape est négatif, aucune ligne n'est renvoyée si début est plus petit que fin. De même, aucune ligne n'est renvoyée pour les entrées NULL. Si étape vaut zéro, c'est considéré comme une erreur. Quelques exemples suivent :

select * from generate_series(2,4);
 generate_series
-----------------
 2
 3
 4
(3 rows)

select * from generate_series(5,1,-2);
 generate_series
-----------------
 5
 3
 1
(3 rows)

select * from generate_series(4,3);
 generate_series
-----------------
(0 rows)

select current_date + s.a as dates from generate_series(0,14,7) as s(a);
    dates
------------
 2004-02-05
 2004-02-12
 2004-02-19
(3 rows)