안녕하세요.
아래 와 같은 코드가 있습니다.
1 2 3 4 5 6 7 8 | 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팀
읽어 주셔서 감사합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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이 안써져서 띄워쓰기했어요