컬럼의 수치값 만큰 행을 증가시키는 방법
오라클 쿼리를 작성하다 보면 컬럼의 수치값 만큰 행의 개수를 늘려서 조회를 해야하는 경우가 있다.
다양한 방법이 있겠지만 쉽고 단순하게 사용할 수 있는 방법을 소개한다.
아래의 예제는 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 1 AND A.CNT --가상뷰와 조인을 하여 행을 늘린다
ORDER BY A.NM
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 1 AND A.CNT --가상뷰와 조인을 하여 행을 늘린다
ORDER BY A.NM