1

我需要能够使用一个选择查询,它会以某种方式生成一个条目列表,其中包含来自两个变量 STARTDATE 和 ENDDATE 的每月增量。一个示例如下所示:

从表中获取 STARTDATE 和 ENDDATE

STARTDATE   ENDDATE
----------- -----------
01-JAN-2011 1-DEC-2011

这导致

CALENDAR 
--------- 
01-JAN-11 
01-FEB-11 
01-MAR-11 
01-APR-11 
01-MAY-11 
01-JUN-11 
01-JUL-11 
01-AUG-11 
01-SEP-11 
01-OCT-11 
01-NOV-11 
01-DEC-11 

关于如何做到这一点的任何想法?有人告诉我一种名为“CONNECT BY”的方法,但它不适用于闰年之类的。

谢谢。

4

1 回答 1

3

像这样的东西应该工作

SQL> ed
Wrote file afiedt.buf

  1  with x as (
  2    select date '2011-01-01' start_date,
  3           date '2011-12-01' end_date
  4      from dual
  5  )
  6  select add_months( start_date, level-1 )
  7    from x
  8* connect by level <= months_between( end_date, start_date ) + 1
SQL> /

ADD_MONTH
---------
01-JAN-11
01-FEB-11
01-MAR-11
01-APR-11
01-MAY-11
01-JUN-11
01-JUL-11
01-AUG-11
01-SEP-11
01-OCT-11
01-NOV-11
01-DEC-11

12 rows selected.
于 2012-05-08T05:50:17.063 回答