데이터베이스/MySQL

[MySql] 코딩테스트용 정리 (5) WITH RECURSIVE

waterground 2021. 12. 28. 20:26

목차

 

1. WITH RECURSIVE

 


WITH RECURSIVE

  • 메모리 상에 가상의 테이블을 만드는 방법이다.
  • 컬럼 이름은 1개 이상 가능하다.
WITH RECURSIVE 테이블이름(컬럼이름) AS (
    SELECT 초기값
    UNION ALL
    SELECT 컬럼이름 계산식 FROM 테이블이름 WHERE 제어문
)

-- 아래의 경우도 가능
WITH RECURSIVE 테이블이름 AS(
    SELECT 초기값 AS 컬럼이름
    UNION ALL
    SELECT 컬럼이름 계산식 FROM 테이블이름 WHERE 제어문
)
-- 0에서 23시까지의 시간 목록 테이블 만들기
WITH RECURSIVE TIMETABLE(HOUR) AS (
    SELECT 0
    UNION ALL
    SELECT HOUR + 1 FROM TIMETABLE WHERE HOUR < 24
)