컬럼의 값 만큼 행(Row)을 늘리기

by 조쉬 posted Dec 08, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

컬럼의 수치값 만큰 행을 증가시키는 방법


오라클 쿼리를 작성하다 보면 컬럼의 수치값 만큰 행의 개수를 늘려서 조회를 해야하는 경우가 있다.

다양한 방법이 있겠지만 쉽고 단순하게 사용할 수 있는 방법을 소개한다.




아래의 예제는 CONNECT BY를 이용하여 최대 건수만큼 가상의 View를 만들어서 원 데이터의 값에 조인을 하여 행을 늘리는 방법이다. 값의 Max 값이 범위가 적고 예측이 가능할때는 유용한 방법이다.


--가상 테이블  (CNT : Min 1, Max 10)
WITH TEST_TABLE AS ( 
   SELECT 'AAA' NM, 3 CNT FROM DUAL UNION ALL 
   SELECT 'BBB' NM, 5 CNT FROM DUAL UNION ALL 
   SELECT 'CCC' NM, 2 CNT FROM DUAL 


--쿼리 
SELECT A.NM 
        , A.CNT 
  FROM TEST_TABLE A 
        , (SELECT LEVEL NUM FROM DUAL CONNECT BY LEVEL <= 10) B 
WHERE B.NUM BETWEEN AND A.CNT  --가상뷰와 조인을 하여 행을 늘린다
ORDER BY A.NM