当前位置: 代码迷 >> Oracle开发 >> 关于oracle connect by 的一个的有关问题
  详细解决方案

关于oracle connect by 的一个的有关问题

热度:126   发布时间:2016-04-24 06:27:31.0
关于oracle connect by 的一个的问题
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)

------解决思路----------------------
引用:
头一个 ,值是变动的
add_months(date , rownum - 1 )

第二个 ,值 是固定的。
add_months(sysdate,-5)

++
相对于每个查询时间来说sysdate已经固定,add_monhts都是-5的值。
而rownum不定
  相关解决方案