我正在开发 Oracle ,而且我很难生成定义范围的列(例如,2008年至2011年)。我知道有一个序列方法,请参阅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
有更动态的方式吗?
感谢您的帮助
答案 0 :(得分:5)
试试这个:
select 2008 + level-1 yr
from dual connect by level < 5
根据需要更改常量。
答案 1 :(得分:2)
您可以使用递归查询:
with dta(yr) as (
select 2008 from dual
union all
select yr+1 from dta where yr < 2011
)
select * from dta