첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
본 블로그는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 블로그 콘텐츠 향상을 위해 쓰여집니다.

728x90
반응형
728x170
CREATE TABLE MENU
(
    ID        INT
   ,PARENT_ID INT
   ,NAME      VARCHAR(50)
);

INSERT INTO MENU VALUES (1, 0, '메뉴1');
INSERT INTO MENU VALUES (2, 0, '메뉴2');
INSERT INTO MENU VALUES (3, 1, '메뉴3');
INSERT INTO MENU VALUES (4, 1, '메뉴4');
INSERT INTO MENU VALUES (5, 1, '메뉴5');
INSERT INTO MENU VALUES (6, 5, '메뉴6');
INSERT INTO MENU VALUES (7, 2, '메뉴7');
INSERT INTO MENU VALUES (8, 2, '메뉴8');

WITH CTE(ID, PARENT_ID, NAME, DISPLAY_ORDER, TREE_PATH)
AS
(
    SELECT 
        ID
       ,PARENT_ID
       ,NAME
       ,'' || ID DISPLAY_ORDER
       ,'' || NAME TREE_PATH
    FROM MENU
    WHERE PARENT_ID = 0
    UNION ALL
    SELECT
        A.ID
       ,A.PARENT_ID
       ,A.NAME
       ,B.DISPLAY_ORDER || ' > ' || A.ID DISPLAY_ORDER
       ,B.TREE_PATH || ' > ' || A.NAME TREE_PATH
    FROM  MENU A, CTE B
    WHERE A.PARENT_ID = B.ID
) 
SELECT
    NAME
   ,TREE_PATH
FROM CTE
ORDER BY DISPLAY_ORDER;
728x90
반응형
그리드형
Posted by 사용자 icodebroker

댓글을 달아 주세요