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