2015年5月4日
--①
SELECT TO_CHAR(add_months(to_date(to_char(add_months(trunc(last_day(sysdate)) + 1,
-6),
'yyyy-mm'),
'yyyy-mm'),
ROWNUM - 1),
'YYYY-MM') AS YEARMONTH,
0 cnt
FROM DUAL
--②
SELECT TO_CHAR(add_months(sysdate,-5),'yyyy-mm') AS YEARMONTH, 0 cnt FROM DUAL
①②执行的结果是一样的,但是加上了CONNECT BY ROWNUM <= 6 结果却不一样了,请问为什么的呢?
(加CONNECT BY ROWNUM <= 6 前结果都是)

(加CONNECT BY ROWNUM <= 6 后,结果分别为)


------解决思路----------------------
头一个 ,值是变动的
add_months(date , rownum - 1 )
第二个 ,值 是固定的。
add_months(sysdate,-5)
------解决思路----------------------
++
相对于每个查询时间来说sysdate已经固定,add_monhts都是-5的值。
而rownum不定