8

我正在尝试搜索与generate_series()等效的 DB2 (PostgreSQL 生成行的方式)。我显然不想用VALUES语句对行进行硬编码。

select * from generate_series(2,4);

    generate_series
    -----------------
                    2
                    3
                    4
    (3 rows)
4

2 回答 2

9

where 子句需要更明确地说明递归的界限,以便 DB2 抑制警告。这是一个略微调整的版本,不会触发警告:

with dummy(id) as (
    select 2 from SYSIBM.SYSDUMMY1    
    union all
    select id + 1 from dummy where id < 4
)
select id from dummy
于 2009-06-14T05:38:42.430 回答
3

我设法编写了一个适合的递归查询:

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

查询可以适应任何你能想到的 for(;;) 。

于 2009-04-30T13:01:11.303 回答