SS/Sugar

CONNECT BY LEVEL

onesixx 2013. 5. 7. 15:26
반응형

CONNECT BY LEVEL

 

-- 1 부터 100 까지 출력
SELECT     LEVEL
      FROM DUAL
CONNECT BY LEVEL <= 100


-- 20050915 부터 20151130 까지 모든일자 출력 (YYYYMMDD 형태 출력 )
SELECT     (TO_DATE ('20050915', 'YYYYMMDD') + LEVEL - 1)  YYYYMMDD
      FROM DUAL
CONNECT BY (TO_DATE ('20050915', 'YYYYMMDD') + LEVEL - 1) <= TO_DATE ('20151130', 'YYYYMMDD')

--  200811 ~ 200903  까지의 모든년월 출력 (YYYYMM형태 출력 )
SELECT
TO_CHAR(ADD_MONTHS( TO_DATE('200811','YYYYMM') , LEVEL-1 ),'YYYYMM')  YYYYMM
FROM DUAL
CONNECT BY
      TO_CHAR(ADD_MONTHS( TO_DATE('200811','YYYYMM') , LEVEL-1 ),'YYYYMM') 
      <=  TO_CHAR(TO_DATE('200903','YYYYMM'),'YYYYMM')

-- 1부터 5까지 출력쿼리

SELECT LEVEL
  FROM DUAL
  CONNECT BY LEVEL <=5;

-- 4부터 10까지 출력

SELECT 4+LEVEL-1 AS NUM 
FROM DUAL
CONNECT BY 4+LEVEL-1 <=10;

-- 10에서 15까지 출력 쿼리

SELECT LEVEL+9 FROM DUAL CONNECT BY LEVEL+9 <16;
SELECT ROWNUM+9 FROM DUAL CONNECT BY LEVEL+9 <16;

-- 20060101일부터 20060105일까지 출력쿼리

SELECT TO_DATE('20060101','YYYYMMDD') + LEVEL -1
  FROM DUAL
CONNECT BY LEVEL <=10;

--  2003년부터 2007년까지 출력쿼리

SELECT TO_CHAR(TO_CHAR(SYSDATE,'yyyy') -5+ROWNUM) yyyy FROM DUAL
CONNECT BY LEVEL <=5;

반응형