generate_series () equivalentes em DB2
-
03-07-2019 - |
Pergunta
Eu estou tentando buscar o equivalente DB2 de generate_series () (o PostgreSQL-maneira de gerar linhas). Eu, obviamente, não quer codificar as linhas com um VALORES comunicado.
select * from generate_series(2,4);
generate_series
-----------------
2
3
4
(3 rows)
Solução
A cláusula where precisa ser um pouco mais explícito sobre os limites da recursão, para DB2 para suprimir o aviso. Aqui está uma versão ligeiramente modificada que não aciona o aviso:
with dummy(id) as (
select 2 from SYSIBM.SYSDUMMY1
union all
select id + 1 from dummy where id < 4
)
select id from dummy
Outras dicas
Eu consegui escrever uma consulta recursiva que se encaixa:
with dummy(id) as (
select 2 from SYSIBM.SYSDUMMY1
union all
select id + 1 from dummy where id + 1 between 2 and 4
)
select id from dummy
A consulta pode ser adaptado a qualquer for (;;) você pode sonhar.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow