Sql 在DB2中生成等价的_series()
我试图搜索DB2中生成行的PostgreSQL方法。我显然不想用语句硬编码行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
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中也有它。但我不知道如何移除它。