Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在DB2中生成等价的_series()_Sql_Db2_Auto Generate - Fatal编程技术网

Sql 在DB2中生成等价的_series()

Sql 在DB2中生成等价的_series(),sql,db2,auto-generate,Sql,Db2,Auto Generate,我试图搜索DB2中生成行的PostgreSQL方法。我显然不想用语句硬编码行 select * from generate_series(2,4); generate_series ----------------- 2 3 4 (3 rows) 我成功地编写了一个符合以下条件的递归查询: with dummy(id) as ( select

我试图搜索DB2中生成行的PostgreSQL方法。我显然不想用语句硬编码行

select * from generate_series(2,4);

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

我成功地编写了一个符合以下条件的递归查询:

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

查询可以适用于任何目的;;您可以想象。

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

结果是正常的,但它会在DB2V9SQL0347W上生成一个警告,递归公共表表达式LOGINNAME.DUMMY可能包含一个无限循环。SQLSTATE=01605是的,我在DB2v8中也有它。但我不知道如何移除它。