Domanda

Sto cercando di cercare l'equivalente DB2 di generate_series () (il modo PostgreSQL di generare righe). Ovviamente non voglio codificare le righe con un VALUES statement.

select * from generate_series(2,4);

    generate_series
    -----------------
                    2
                    3
                    4
    (3 rows)
È stato utile?

Soluzione

La clausola where deve essere un po 'più esplicita sui limiti della ricorsione per consentire a DB2 di sopprimere l'avviso. Ecco una versione leggermente modificata che non attiva l'avvertimento:

with dummy(id) as (
    select 2 from SYSIBM.SYSDUMMY1    
    union all
    select id + 1 from dummy where id < 4
)
select id from dummy

Altri suggerimenti

Sono riuscito a scrivere una query ricorsiva adatta:

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

La query può essere adattata a qualsiasi cosa tu possa desiderare (;;).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top