CONNECT BY LEVEL
계층형 쿼리 'CONNECT BY LEVEL'을 활용한 예제를 살펴보자.
예시 - 순번 생성
계층형 쿼리를 사용하면 순번을 가진 테이블을 생성할 수 있다. 또한, 이 쿼리를 활용하면 반복문을 사용하지 않고도 순번을 생성해서 채번을 진행할 수 있다.
예를 들어, ID를 '056932'부터 2000개의 ID를 순차적으로 기입해서 데이터를 삽입해야 한다면 어떻게 해야할까? 무식하게 2000개의 ID를 하나씩 넣어서 진행할 수도 있지만 매우 비효율적이다.
이때 'CONNECT BY LEVEL'을 사용하면 보다 쉽게 순번을 만들어서 데이터를 삽입할 수 있다. 아래는 ID를 '056932'부터 2000개의 ID를 순차적으로 생성해서 조회하는 쿼리문이다.
SELECT LPAD(LEVEL+056932, 6, '0') NO FROM DUAL CONNECT BY LEVEL<=2000;
이렇게 생성한 데이터를 'INSERT' 쿼리문을 통해 삽입해주면 된다. 아래는 ID를 '056932'부터 2000개의 ID를 순차적으로 생성해서 삽입하는 쿼리문이다.
INSERT INTO MY_TABLE(NO)
SELECT
LPAD(LEVEL+056932, 6, '0') NO
FROM
DUAL
CONNECT BY
LEVEL<=2000;
댓글