트리구조의 데이터를 select 하는 방법질문합니다.. 0 1 619

by fkdltpstjd [SQL Query] [2018.03.31 18:37:12]


상위레벨과 하위레벨로 구성되어 있는 테이블이있습니다.

칼럼순번, 칼럼레벨, 항목명,상위칼럼순번 yn1,yn2,yn3,yn4,yn5이렇게 구성되어 있습니다.

상위항목은 상위칼럼순번이 공백이고,

하위항목은 상위칼럼순번에 상위항목의 칼럼순번이 입력되는 테이블입니다.

상위항목은 yn칼럼들이 전부 n으로 되어 있고,

하위항목은 YN칼럼을 사용자가 선택해서 y로 입력하는데요.

예를 들어, 조회를 할때 yn1이 y인 하위항목을 검색하면 yn1이 y인 하위항목만 나오고 그 하위항목의 상위항목은 나타나지 않습니다. 이런경우는 쿼리를 어떻게 짜야하는지 잘모르겟습니다.

by 마농 [2018.04.02 08:54:14]
SELECT *
  FROM (SELECT DISTINCT no, nm, pno, lv
             , yn1, yn2, yn3, yn4, yn5    -- 3. 검색결과 중복 제거
          FROM t
         START WITH yn1 = 'Y'             -- 1. yn1 이 Y 인 건부터 시작
         CONNECT BY no = PRIOR pno        -- 2. 상위번호로 거꾸로 탐색
        )
 START WITH pno IS NULL                   -- 4. 최상위로부터
 CONNECT BY PRIOR no = pno                -- 5. 순방향 계층 탐색
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입