oracle connect by用法篇 (包括树遍历)之二

3.2查询当前时间往前的12周的开始时间、结束时间、第多少周

select sysdate - (to_number(to_char(sysdate - 1, 'd')) - 1) -
       (rownum - 1) * 7 as startDate,
       sysdate + (7 - to_number(to_char(sysdate - 1, 'd'))) -
       (rownum - 1) * 7 as endDate,
       to_number(to_char(sysdate, 'iw')) - rownum + 1 as weekIndex
  from dual
connect by level<= 12;--将level改成rownum可以实现同样的效果

d 表示一星期中的第几天

iw 表示一年中的第几周

3.3字符串分割,由一行变为多行

select REGEXP_SUBSTR('01#02#03#04', '[^#]+', 1, rownum) as newport 
    from dual connect by rownum <= REGEXP_COUNT('01#02#03#04', '[^#]+');

 

posted @ 2017-06-08 15:59  迷走神经  阅读(649)  评论(0编辑  收藏  举报