9.18. Funções que retornam conjunto

Esta seção descreve as funções que têm possibilidade de retornar mais de uma linha. Atualmente as únicas funções nesta classe são as funções geradoras de séries, conforme detalhado na Tabela 9-40.

Tabela 9-40. Funções geradoras de séries

Função Tipo do argumento Tipo retornado Descrição
generate_series(início, fim) int ou bigint setof int ou setof bigint (o mesmo tipo do argumento) Gera uma série de valores, do início ao fim, com tamanho do passo igual a um.
generate_series(início, fim, passo) int ou bigint setof int ou setof bigint (o mesmo tipo do argumento) Gera uma série de valores, do início ao fim, com tamanho do passo igual a passo.

Quando o passo é positivo, são retornadas zero linhas se o início for maior que o fim. Inversamente, quando o passo é negativo são retornadas zero linhas se o início for menor que o fim. Também são retornadas zero linhas para entradas NULL. É errado o passo ser igual a zero. Alguns exemplos:

=> select * from generate_series(2,4);

 generate_series
-----------------
               2
               3
               4

=> select * from generate_series(5,1,-2);

 generate_series
-----------------
               5
               3
               1

=> select * from generate_series(4,3);

 generate_series
-----------------
(0 linhas)

=> 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
SourceForge.net Logo CSS válido!