주의 !! mysql 5.7 이하 미지원
■ WITH RECURSIVE 문
- 메모리 상에 가상의 테이블을 저장
- 재귀 쿼리를 이용하여 실제로 테이블을 생성하거나 데이터삽입(INSERT)을 하지 않아도 가상 테이블을 생성할 수 있다.
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;
※ 결과 확인
728x90
반응형
'DB > SQL' 카테고리의 다른 글
[MySQL] 위도 경도 값으로 반경(거리) 구하기 (0) | 2021.10.21 |
---|---|
[오라클(Oracle)] 그룹 함수 (ROLLUP, CUBE, GROUPING 등) (0) | 2021.09.06 |
[Oracle] 오라클 고급쿼리 – 계층적 쿼리 (level) (0) | 2021.09.06 |
오라클 NL Join, Sort Merge Join, Hash Join 특징 총정리 (0) | 2021.08.31 |
[ORACLE]오라클_제약조건( CHECK ) (0) | 2021.08.31 |
댓글