"감자"가 포함된 부서를 찾고, 해당 부서의 상위·하위 부서를 모두 출력하는 SQL 쿼리 즉, "감자"라는 단어가 포함된 부서뿐만 아니라, 그 부서의 상위 부서와 하위 부서까지 함께 출력하는 방법입니다.
1. CONNECT BY를 활용한 방법 (오라클 계층 쿼리)
SELECT DISTINCT DEPT_ID , KRN_DEPT_NM , UPPR_DEPT_ID , SCRN_INDCT_SEQNO FROM TB_CI_DEPT_BSC START WITH DEPT_ID IN ( -- "감자"가 포함된 부서를 찾음 SELECT DEPT_ID FROM TB_CI_DEPT_BSC WHERE UPPER(KRN_DEPT_NM) LIKE '%' || UPPER('감자') || '%' ) CONNECT BY NOCYCLE DEPT_ID = PRIOR UPPR_DEPT_ID -- 상위 부서 찾기 OR UPPR_DEPT_ID = PRIOR DEPT_ID -- 하위 부서 찾기 ORDER BY UPPR_DEPT_ID NULLS FIRST, SCRN_INDCT_SEQNO NULLS FIRST ;
설명
-- 예제 데이터 및 결과
예제 데이터
"감자" 검색 시 기대 결과
결과는 "감자"가 포함된 부서(1003)와 그 부서의 상위·하위 부서가 함께 출력됩니다!