9.18. Fonctions retournant des ensembles
Cette section décrit des fonctions qui peuvent renvoyer plus d'une
ligne. Actuellement, les seules fonctions dans cette classe sont les
les fonctions de génération de séries, détaillées dans le Tableau 9.39,
« Fonctions de génération de séries ».
Tableau 9.39. Fonctions de génération de séries
|
Fonction
|
Type d'argument
|
Type de retour
|
Description
|
|
generate_series (
début
,
fin
)
|
int ou bigint
|
setof int ou setof bigint (même type que l' argument)
|
Produit une série de valeurs, de
début
à
fin
avec un incrément de un.
|
|
generate_series (
début
,
fin
,
pas
)
|
int ou bigint
|
setof int ou setof bigint (même type que l'argument)
|
Produit une série de valeurs, de
début
à
fin
avec un incrément de
pas
.
|
Quand
pas
est positif, aucune
ligne n'est renvoyée si
début
est
supérieur à
fin
. À l'inverse,
quand
pas
est négatif, aucune
ligne n'est renvoyée si
début
est
inférieur à
fin
. De même, aucune
ligne n'est renvoyée pour les entrées NULL.
Une erreur est levée si
pas
vaut
zéro.
Quelques exemples :
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)