출력 예시)
★★★★★★
WITH RECURSIVE 구문을 이용한 리스트 데이터 생성
오라클의 경우, connect by로 아래와 같은 간단한 리스트 생성이 가능하다.
SELECT LEVEL FROM DUAL CONNECT BY LEVEL < 9;
하지만 MySQL의 경우, 간단한 생성이 불가능하다.
connect by라는 간단한 함수가 없기 때문이다.
따라서 MySQL에서는 WITH RECURSIVE 구문을 사용한다.
❓ WITH RECURSIVE이란?
- 메모리 상에 가상 테이블 저장
- 재귀 쿼리를 이용하여 가상의 테이블 생성 가능
-- 형식
WITH RECURSIVE 테이블명 AS(
SELECT 초기값 AS 컬럼별명1
UNION ALL
SELECT 컬럼별명1 계산식
FROM 테이블명
WHERE 제어문
)
-- 예시
-- 컬럼 h가 1부터 5까지의 데이터를 갖게 만들자.
WITH RECURSIVE cte
AS (SELECT 1 AS h
UNION ALL
SELECT h + 1
FROM cte
WHERE h < 5
)
SELECT * FROM cte;
★★★★★★
'OLD_알고리즘 > Programmers - SQL' 카테고리의 다른 글
SQL - JOIN ] 있었는데요 없었습니다 (0) | 2021.03.01 |
---|---|
SQL - JOIN ] 🔁없어진 기록 찾기 (0) | 2021.03.01 |
SQL - GROUP BY ] 입양 시각 구하기(1) (0) | 2021.02.27 |
SQL - GROUP BY ] 동명 동물 수 찾기 (0) | 2021.02.27 |
SQL - GROUP BY ] 고양이와 개는 몇 마리 있을까 (0) | 2021.02.27 |
댓글