오라클 계층쿼리 CONNECT BY LEVEL 사용법

오라클 계층쿼리 CONNECT BY LEVEL 사용법

CONNECT BY LEVEL 쿼리는 계층형 쿼리로 오라클에서 값을 연속적으로 증가하는 값이 필요로 할 때 사용됩니다. 고급 쿼리에서도 많이 사용되는데요.

쉽게 풀어서 설명해 드리면 C# 프로그램에서 반복문을 사용하는 FOR 문과 유사합니다.

FOR 문은 for(int=0;i<10;i++) 처럼 시작 값과 종료 값 증가 값을 모두 설정할 수 있습니다.
이름만 보면 뭔가 복잡해 보이지만 간단한 쿼리고 쉽게 사용할 수 있습니다.



1. 기본 사용 방법부터 알아보겠습니다.

1 부터 9까지 값이 증가하게 되는 쿼리를 작성하려면 어떻게 해야 할까요?
while 문으로 1씩 증가하면서 하는 것이 일반적입니다.
하지만 connect by level을 사용하면 간단하게 됩니다.

실행 결과를 보면 1부터 9까지 조회 되는 것을 확인할 수 있습니다.
SELECT LEVEL
  FROM DUAL
CONNECT BY LEVEL < 10;




2. 값을 2씩 증가 하도록 할 수 있습니다. LEVEL에 *2를 하면 값이 2씩 증가합니다.



3. 값을 1부터 2씩 증가 시는 방법 중 하나 입니다. 방법은 여러 가지가 있습니다.



4. 시작 값이 -0.5 로 해서 -로 나오도록 할 수 있습니다. 증가 값에 -를 주면 됩니다.



5. 초기 시작하는 값을 10으로 설정하고 값을 증가할 수 있습니다.
   LEVEL에 +10을 하시면 됩니다.



6. LEVEL 앞에 숫자를 표현할 수 있습니다.



7. LEVEL 앞에 숫자를 표현해서 1부터 2씩 증가 하는 다른 방법도 구현할 수 있습니다.



8. 10 미만으로 숫자를 내림차순으로 조회하는 방법입니다.

이처럼 LEVEL을 사용해서 여러가지 쿼리를 사용할 수 있습니다.