常见的,connect by会在构造序列的时候使用
select rownum from dual connect by rownum <= 12;
SELECT TO_CHAR(shijian, 'hh24:mi') shijian, ROWNUM r
FROM (SELECT TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD') || '0930',
'yyyymmdd hh24mi') + (ROWNUM - 1) / 12 SHIJIAN,
ROWNUM
FROM DUAL
CONNECT BY ROWNUM <= 12
ORDER BY shijian)
WHERE shijian BETWEEN
(CASE WHEN
TO_NUMBER(SUBSTR(TO_CHAR(SYSDATE, 'YYYYMMDDHH24MI'), 9, 3)) >= 73 AND
TO_NUMBER(SUBSTR(TO_CHAR(SYSDATE, 'YYYYMMDDHH24MI'), 9, 3)) <= 193 THEN
TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD') || '0930', 'yyyymmdd hh24mi') ELSE
TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD') || '2130', 'yyyymmdd hh24mi') END)
AND (CASE WHEN
TO_NUMBER(SUBSTR(TO_CHAR(SYSDATE, 'YYYYMMDDHH24MI'), 9, 3)) >= 73 AND
TO_NUMBER(SUBSTR(TO_CHAR(SYSDATE, 'YYYYMMDDHH24MI'), 9, 3)) <= 193 THEN
TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD') || '1930', 'yyyymmdd hh24mi') ELSE
TO_DATE(TO_CHAR(SYSDATE + 1, 'YYYYMMDD') || '0730',
'yyyymmdd hh24mi') END);
FROM (SELECT TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD') || '0930',
'yyyymmdd hh24mi') + (ROWNUM - 1) / 12 SHIJIAN,
ROWNUM
FROM DUAL
CONNECT BY ROWNUM <= 12
ORDER BY shijian)
WHERE shijian BETWEEN
(CASE WHEN
TO_NUMBER(SUBSTR(TO_CHAR(SYSDATE, 'YYYYMMDDHH24MI'), 9, 3)) >= 73 AND
TO_NUMBER(SUBSTR(TO_CHAR(SYSDATE, 'YYYYMMDDHH24MI'), 9, 3)) <= 193 THEN
TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD') || '0930', 'yyyymmdd hh24mi') ELSE
TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD') || '2130', 'yyyymmdd hh24mi') END)
AND (CASE WHEN
TO_NUMBER(SUBSTR(TO_CHAR(SYSDATE, 'YYYYMMDDHH24MI'), 9, 3)) >= 73 AND
TO_NUMBER(SUBSTR(TO_CHAR(SYSDATE, 'YYYYMMDDHH24MI'), 9, 3)) <= 193 THEN
TO_DATE(TO_CHAR(SYSDATE, 'YYYYMMDD') || '1930', 'yyyymmdd hh24mi') ELSE
TO_DATE(TO_CHAR(SYSDATE + 1, 'YYYYMMDD') || '0730',
'yyyymmdd hh24mi') END);