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
我正在研究 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