아래 DATA 의 1DETP 메뉴를 누르면 아래 계층으로 딸린 최하위메뉴중 첫번째메뉴 리스트를 뽑아주세요.
예시 > 시스템 관리 누르면 해당계층의 최하위 DEPT의 1번째인 공지게시판이 나오면됩니다.
이런식으로 다른 DEPT 들도 마찬가지로요...
LEVEL 메뉴명 메뉴코드 상위메뉴코드
1 AA센터 관리 0001 00
1 BB센터 관리 0002 00
1 CC통계 0003 00
1 시스템 관리 0004 00
2 게시판 000401 0004
3 공지게시판 00040101 000401
2 기준정보 관리 000402 0004
3 코드관리 00040201 000402
3 메뉴관리 00040202 000402
3 호환관리 00040203 000402
3 제조물관리 00040204 000402
3 ㅌㅌㅌ관리 00040205 000402
3 메일 발송관리 00040206 000402
3 선호도관리 00040207 000402
3 사용자관리 00040208 000402
3 권한관리 00040209 000402
3 카테고리관리 00040210 000402
3 메뉴별접속통계 00040211 000402
3 SM관리 00040212 000402
코드값이 위와 같이 상위코드값을 포함하는 구조라면?
다음과 같이 코드 정렬로 가능할 듯 합니다.
WITH t AS ( SELECT 1 lv, '0001' cd, '00' pcd, 'AA센터 관리' nm UNION ALL SELECT 1, '0002' , '00' , 'BB센터 관리' UNION ALL SELECT 1, '0003' , '00' , 'CC통계' UNION ALL SELECT 1, '0004' , '00' , '시스템 관리' UNION ALL SELECT 2, '000401' , '0004' , '게시판' UNION ALL SELECT 3, '00040101', '000401', '공지게시판' UNION ALL SELECT 2, '000402' , '0004' , '기준정보 관리' UNION ALL SELECT 3, '00040201', '000402', '코드관리' UNION ALL SELECT 3, '00040202', '000402', '메뉴관리' UNION ALL SELECT 3, '00040203', '000402', '호환관리' UNION ALL SELECT 3, '00040204', '000402', '제조물관리' UNION ALL SELECT 3, '00040205', '000402', 'ㅌㅌㅌ관리' UNION ALL SELECT 3, '00040206', '000402', '메일 발송관리' UNION ALL SELECT 3, '00040207', '000402', '선호도관리' UNION ALL SELECT 3, '00040208', '000402', '사용자관리' UNION ALL SELECT 3, '00040209', '000402', '권한관리' UNION ALL SELECT 3, '00040210', '000402', '카테고리관리' UNION ALL SELECT 3, '00040211', '000402', '메뉴별접속통계' UNION ALL SELECT 3, '00040212', '000402', 'SM관리' ) SELECT TOP(1) * FROM (SELECT lv, cd, pcd, nm , CASE WHEN LEAD(lv) OVER(ORDER BY cd) > lv THEN 0 ELSE 1 END AS isleaf FROM t WHERE cd LIKE CONCAT('0004', '%') ) a WHERE isleaf = 1 ;