database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 39122 게시물 읽기
No. 39122
메뉴 구조에서 시작과 종료를 확인
작성자
김주환(pai486)
작성일
2011-11-24 12:22
조회수
4,798

LV    MENULV    MENUID    MENUNM    MENUPID    MENUSORT     GUBUN

1       2                 000042        aaaaa         000036              1
1       2                 000043        bbbbb         000036             2

---------------------------------시작----------------------------------------- 
2       3                 000033        ccccc           000043             1   필드추가  (s)
2       3                 000047        ddddd         000043              2
2       3                 000048        eeeee         000043              3
2       3                 000049        ffffffff             000043             4 필드추가  (e)  이렇게 표시하고 십습니다.
--------------------------------종료----------------------------------------
1       2                 000044        agdfdfd       000036             3
1       2                 000045        dfdfdfdf        000036            4

이런 데이타가 나오는 메뉴구조에서

시작에서 종료 까지 데이타가 있습니다

시작부분에서 첫번째라인 LV 가 2로 됩니다....여기서 저

그룹의 시작 메뉴ID가 000033 을 S  마지막라인  메뉴아이디가 000049      

의 라인을 E 라는 필드를 나오게 하며 나머지는 공백 처리 가능한지요?

각 메뉴의 서브메뉴인데 서브메뉴의 시작과 끝을 표시하고 싶습니다

 

 

SELECT                     
                  level lv                                    
                  ,MENU_LV as menuLv
                 ,MENU_ID as menuId
                ,MENU_GUBUN as menuGubun               
                ,MENU_NM as menuNm
                ,MENU_PID as menuPid
                ,MENU_SORT as menuSort
                ,MENU_URL as menuUrl
                ,TO_CHAR(REG_DT,'YYYY-MM-DD HH:MI')   AS regDt
                ,REG_ID as regId
                ,TO_CHAR(UPD_DT,'YYYY-MM-DD HH:MI')   AS updDt
                ,UPD_ID as updId
                ,USER_YN as userYn                               
        FROM TB_MENU a
        WHERE   DEL_YN = 'N'
        AND        USER_YN = 'Y'
        AND        MENU_GUBUN = 'U'
        AND     MENU_LV IN ('2','3')
              START WITH               
                MENU_PID  = '000036'               
            CONNECT BY PRIOR
                menu_id = menu_pid
            ORDER SIBLINGS BY menu_gubun, menu_sort

 

 

이 글에 대한 댓글이 총 2건 있습니다.

SELECT a.*
     , CASE WHEN LAG(lv) OVER(ORDER BY ROWNUM) || lv = '12' THEN 's'
            WHEN LEAD(lv, 1, 1) OVER(ORDER BY ROWNUM) || lv = '12' THEN 'e'
        END flag
  FROM (위의 쿼리) a
;

마농(manon94)님이 2011-11-24 17:35에 작성한 댓글입니다.
이 댓글은 2011-11-24 17:35에 마지막으로 수정되었습니다.

 

 

답변 감사합니다.

 

 

잘 사용하겠습니다

김주환님이 2011-11-25 12:12에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39126날짜계산 특정기간동안 1개월씩 증가[도와주세요] [2]
정현숙
2011-11-25
4463
39125update 문 튜닝좀 부탁드립니다. [2]
박주영
2011-11-25
4796
39124날자 관련 하여 질문 드립니다. 정말 모르겠네요 [2]
호동이네남일이
2011-11-24
3811
39122메뉴 구조에서 시작과 종료를 확인 [2]
김주환
2011-11-24
4798
39121rollup에 총계대신 소계값중 max값을 출력하고 싶습니다. [2]
문성환
2011-11-24
5199
39120세로를 가로로 변환하는 방법 [4]
제로
2011-11-23
7465
39118통계쿼리좀 부탁드려여 [3]
장선각
2011-11-22
5128
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다