반응형
With문의 활용
- With문을 활용함으로써 Select문의 결과를 임시 집합으로 저장해두고 SQL문에서 마치 테이블처럼 해당 집합을 불러올 수 있다
---------- # WITH
WITH TMP1 AS ( -- WITH문을 이용해서 해당 집합을 TMP1으로 지정하고
SELECT -- 아래 SELECT문에서 TMP1을 조회
FILM_ID
, TITLE
, (CASE
WHEN LENGTH < 30 THEN 'SHORT'
WHEN LENGTH >= 30
AND LENGTH < 90 THEN 'MEDIUM'
WHEN LENGTH > 90 THEN 'LONG'
END) LENGTH
FROM
FILM
)
SELECT * FROM TMP1;
;
재귀 쿼리
- 재귀 쿼리란 데이터 값 기준 부모 자식간의 관계를 표현하는 표현문
WITH RECURSIVE TMP1 AS (
SELECT
EMPLOYEE_ID
, MANAGER_ID
, FULL_NAME
, 0 LVL
FROM
TB_EMP_RECURSIVE_TEST
WHERE MANAGER_ID IS NULL -- 관리자가 없는 사람은 최상위 관리자
UNION -- 최상의 관리자부터 재귀 시작
SELECT
E.EMPLOYEE_ID
, E.MANAGER_ID
, E.FULL_NAME
, S.LVL + 1
FROM
TB_EMP_RECURSIVE_TEST E
, TMP1 S
WHERE S.EMPLOYEE_ID = E.MANAGER_ID -- 사원ID와 관리자 ID를 조인
)
SELECT EMPLOYEE_ID, MANAGER_ID, LPAD(' ', 4 * (LVL)) || FULL_NAME AS FULL_NAME FROM TMP1;
Reference
- Fast Campus, 모두를 위한 SQL/DB 올인원 패키지 온라인 강의
반응형
'Data > Sql' 카테고리의 다른 글
[SQLD] 데이터 모델과 SQL - 정규화, 반정규화, 트랜잭션, NULL (0) | 2024.05.23 |
---|---|
[SQLD] 데이터 모델링의 이해 - ERD, 엔티티, 속성, 관계, 식별자 (1) | 2024.05.23 |
[SQL] 조건 연산자 - Case, Coalesce, NullIf, Cast (0) | 2023.06.19 |
[SQL] 제약조건 - 기본키, 외래키, Check, Unique, Not Null (1) | 2023.06.19 |
[SQL] 데이터 타입 - Boolean, Char/Varchar/Text, Numeric, Integer, Serial, Date/Time/Timestamp (0) | 2023.06.19 |