2. WITH RECURSIVE를 활용한 방법 (오라클 12c 이상)
WITH RECURSIVE cte AS ( -- "감자"가 포함된 부서를 찾음 SELECT DEPT_ID , KRN_DEPT_NM , UPPR_DEPT_ID , SCRN_INDCT_SEQNO FROM TB_CI_DEPT_BSC WHERE UPPER(KRN_DEPT_NM) LIKE '%' || UPPER('감자') || '%' UNION ALL
-- 검색된 부서의 상위 부서를 찾음 SELECT d.DEPT_ID , d.KRN_DEPT_NM , d.UPPR_DEPT_ID , d.SCRN_INDCT_SEQNO FROM TB_CI_DEPT_BSC d JOIN cte c ON d.DEPT_ID = c.UPPR_DEPT_ID
UNION ALL
-- 검색된 부서의 하위 부서를 찾음 SELECT d.DEPT_ID , d.KRN_DEPT_NM , d.UPPR_DEPT_ID , d.SCRN_INDCT_SEQNO FROM TB_CI_DEPT_BSC d JOIN cte c ON d.UPPR_DEPT_ID = c.DEPT_ID ) SELECT * FROM cte ORDER BY SCRN_INDCT_SEQNO;