안녕하세요.
아래 와 같은 코드가 있습니다.
SELECT 'Z:' PATH FROM DUAL UNION ALL SELECT 'Z:\A팀' FROM DUAL UNION ALL SELECT 'Z:\B팀' FROM DUAL UNION ALL SELECT 'Z:\A팀\001. 팀업무관련' FROM DUAL UNION ALL SELECT 'Z:\A팀\002. 팀운영관련' FROM DUAL UNION ALL SELECT 'Z:\B팀\001. 이미지' FROM DUAL UNION ALL SELECT 'Z:\B팀\002. 검사' FROM DUAL UNION ALL SELECT 'Z:\B팀\003. Scan' FROM DUAL
이것을 메뉴 트리로 표현 하고 싶습니다.
메뉴 트리로 표현시 CODE, PCODE 컬럼을 생성해서 기입을 해야 되는데 기존 자료가 CODE, PCODE가 없습니다.
1.자동으로 CODE를 생성하고 PCODE를 자동으로 구하고 싶습니다.
CODE | PATH | FULLPATH | PCODE | PPATH |
2 | A팀 | Z:\A팀 | 1 | Z: |
2.메뉴트리식으로 표기 하고 싶습니다.
Z:
- A팀
읽어 주셔서 감사합니다.
with t as ( SELECT 'Z:' PATH FROM DUAL U NION ALL SELECT 'Z:\A팀' FROM DUAL U NION ALL SELECT 'Z:\B팀' FROM DUAL U NION ALL SELECT 'Z:\A팀\001. 팀업무관련' FROM DUAL U NION ALL SELECT 'Z:\A팀\002. 팀운영관련' FROM DUAL U NION ALL SELECT 'Z:\B팀\001. 이미지' FROM DUAL U NION ALL SELECT 'Z:\B팀\002. 검사' FROM DUAL U NION ALL SELECT 'Z:\B팀\003. Scan' FROM DUAL ) , tt as ( select rownum code, path fullpath, regexp_count(path, '\\') lev, substr(path, instr(path, '\', -1)+1) path, substr(path, 1, instr(path, '\', -1)-1) ppath from t ) select code, LPAD('- ',4*(LEVEL-1))||path path, fullpath, (select code from tt where fullpath = t1.ppath) pcode, ppath from tt t1 start with ppath is null connect by prior fullpath = ppath
UNION이 안써져서 띄워쓰기했어요