Database/SQL
MySql, MariaDB에서 connect by level 사용방법
리커니
2021. 2. 23. 17:58
반응형
MySql, MariaDB에서 connect by level 사용방법
오랜만에 포스팅에서는 MySql, MariaDB에서 connect by level 사용방법을 알아보겠습니다.
connect by level 은 증가하거나 감소하는 데이터를 동적으로 생성할때 사용하는데요,
사용방법은 아래와 같습니다.
SELECT LEVEL
FROM DUAL
CONNECT BY LEVEL <= 8
위의 쿼리 결과는 아래와 같습니다.
LEVEL
1
2
3
4
5
6
7
8
뭔가 느낌이 오시죠?
이처럼 내가 원하는 행만큼의 데이터를 가져오고 싶을때 사용됩니다.
그럼 MySql, MariaDB에서는 어떻게 사용되는지 보도록 하죠.
MySql, MariaDB 에서는 WITH RECURSIVE 구문을 활용합니다.
WITH RECURSIVE 는 번역과 같이 재귀 함수의 역할을 합니다. 자기 자신을 호출하는 것 이죠.
예시를 보면서 설명을 하도록 하죠.
WITH RECURSIVE A AS (
SELECT 1 AS LEVEL
UNION ALL
SELECT 1+A.LEVEL
FROM A
WHERE A.LEVEL <8
)
SELECT LEVEL
FROM A
괄호 안의 WHERE 조건이 만족할 때 까지 자신을 호출하게 됩니다.
그래서 결과는 위의 CONNECT BY LEVEL 구문과 같게 되죠.
반응형