Oracle 内联生成数字列(单条语句)

Oralcle generate number column inline (single statement)

我正在研究 Oracle,但我在生成定义范围(例如 2008 年到 2011 年)的列时遇到困难。我知道有一个 sequences 方法见 here.

但是,我希望将其内联,以便我的 PHP 可以顺利使用它。

我也知道有一种相当丑陋的做法;例如

select 2008 yr from dual 
union 
select 2009 yr from dual
union 
select 2010 yr from dual
union 
select 2011 yr from dual

有没有更动态的方式?

感谢您的帮助

试试这个:

select 2008 + level-1 yr
from dual connect by level <  5

根据需要更改常量。

您可以使用递归查询:

with dta(yr) as (
select 2008 from dual
union all
select yr+1 from dta where yr < 2011
)
select * from dta

fiddle