connect by的应用

1 查询一天的24小时的每一个小时

   sql语句:
         select trunc(sysdate,'dd')+(level-1)/24 dt from dual connect by level<25
    效果:
                

2 查询开始日期到结束日期中的每一天的日期

sql语句:
              SELECT TO_CHAR(TO_DATE('2016-12-01', 'YYYY-MM-DD') + ROWNUM - 1, 'YYYY-MM-DD') AS NAME  FROM DUAL
              CONNECT BY ROWNUM <=  TRUNC(TO_DATE('2016-12-12', 'YYYY-MM-DD')- TO_DATE('2016-12-01', 'YYYY-MM-DD')) + 1
         效果
                  

3 把一个用逗号隔开的字段分割成几份

 sql语句:
             select regexp_substr('1,2,3,4,5','[^,]+',1,rownum) from dual 
            connect by rownum<=length(regexp_replace('1,2,3,4,5'||',', '[^,]', null))
        效果:
        


原文地址:https://www.cnblogs.com/t0404/p/10290985.html