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 40484 게시물 읽기
No. 40484
CONNECT_BY 쿼리문 질문드려요
작성자
정창혁(nomance)
작성일
2014-06-05 11:51ⓒ
2014-06-05 11:58ⓜ
조회수
9,469

 계층별 쿼리를 역순으로 ROOT에서 CHILD가 아니라 CHILD를 포함한 상위노드를 찾는 쿼리를 짜고 싶습니다.

START WITH에서 하위노드를 IN으로 주면 원하는 결과가 나오긴 하는데요.

근데 이때 SYS_CONNECT_BY_PATH와 LEVEL이 역순으로 나오는게 문제네요.

 

해당 그룹권한에 포함된 메뉴들을 조회하는 쿼리입니다.

SELECT 

 

       LEVEL AS LVL,

       MENU_CODE,

       MENU_NAME,

       REPLACE(SYS_CONNECT_BY_PATH(MENU_NAME, ' > '), '> ROOT > ', '') MENU_PATH,

       MENU_SEQ,

       PARENT_MENU_CODE,

       MENU_URL

  FROM 메뉴 X

CONNECT BY  MENU_CODE = PRIOR PARENT_MENU_CODE

 START WITH MENU_CODE IN (SELECT MENU_CODE

                     FROM 권한

                    WHERE Y.AUTH_GROUP = 'NORMAL')

 

일반적으로 특정 권한의 메뉴를 상위구조를 포함해서 가져올때 어떻게 구현하시나요??

 

 

 

 

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

-- 2. 최상위로부터 계층 순 전개
SELECT LEVEL AS lvl
     , menu_code
     , menu_name
     , SUBSTR(SYS_CONNECT_BY_PATH(menu_name, ' > '), 10) menu_path
     , menu_seq
     , parent_menu_code
     , menu_url
  FROM (-- 1. 계층 역 전개후 중복 제거
        SELECT DISTINCT
               menu_code
             , menu_name
             , menu_seq
             , parent_menu_code
             , menu_url
          FROM 메뉴 x
         CONNECT BY menu_code = PRIOR parent_menu_code
         START WITH menu_code IN (SELECT menu_code
                                    FROM 권한 y
                                   WHERE y.auth_group = 'NORMAL')
        )
 CONNECT BY PRIOR menu_code = parent_menu_code
 START WITH parent_menu_code IS NULL
;

마농(manon94)님이 2014-06-05 13:57에 작성한 댓글입니다.
이 댓글은 2014-06-05 13:57에 마지막으로 수정되었습니다.

아.. 심플한건데 생각을 못했네요. 

감사합니다.

정창혁(nomance)님이 2014-06-05 14:14에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40488날짜조회요ㅠ [1]
ㅎㅎㅎ
2014-06-10
7066
40487합계내는거질문이요ㅠ [1]
ㅇㅇㅇ
2014-06-10
6746
40485분산 DB 관련해서 질문드립니다.
김세호
2014-06-05
6864
40484CONNECT_BY 쿼리문 질문드려요 [2]
정창혁
2014-06-05
9469
40483분석함수 lead 사용쿼리 문의 [4]
디비사랑
2014-06-03
7391
40482mview log에 생성되는 데이터를 mview에 한해 제한할 수 있는지요.
이차승
2014-06-02
6732
40481https://localhost:1158/em 이 안됩니다.
김성환
2014-05-30
8528
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다