쿼리 좀 여쭤볼게요 Connect by isleaf 0 4 4,060

by 알데바란 [SQL Query] CONNECT_BY_ISLEAF [2012.08.01 20:22:35]


select cat_id, cat_nm, prnt_cat_id, is_leaf
            from (
                select cat_id, cat_nm, prnt_cat_id, 
                    DECODE(CONNECT_BY_ISLEAF, 0, 'Y', 'N') is_leaf
                        from (
                            select cat_id, cat_nm, prnt_cat_id
                                from TBLPS_CATEGORY_INFO
                                    where work_no = '201206000176'
                                    and work_rev_no = '1'
                                    and gosi_no = '2012-905'
                            )
                    connect by prior cat_id = prnt_cat_id
                    start with prnt_cat_id = 0
            )
                where prnt_cat_id = 0
                        order by cat_nm

이런 쿼리가 있는데요 
10g에서 생긴 connect by isleaf가 9i에서는 못쓰더라구요. 
저 부분만 바꿔주시면 안될까요 ?
by 마농 [2012.08.02 09:31:08]
SELECT cat_id, cat_nm, prnt_cat_id
     , CASE WHEN LEVEL >= LEAD(LEVEL, 1, LEVEL) OVER(ORDER BY ROWNUM)
            THEN 'N' ELSE 'Y' END is_leaf
  FROM (
        SELECT cat_id, cat_nm, prnt_cat_id
          FROM tblps_category_info
         WHERE work_no = '201206000176'
           AND work_rev_no = '1'
           AND gosi_no = '2012-905'
        )
 WHERE prnt_cat_id = 0
 START WITH prnt_cat_id = 0
 CONNECT BY PRIOR cat_id = prnt_cat_id
 ORDER BY cat_nm
;

by 일요일날오후 [2014.04.16 23:25:50]

혹시 여기 쿼리에서 ORDER SIBLINGS BY를 붙이면 쿼리가 사용이 안되던데

 

계층형으로 정렬을 할려면 ORDER SIBLINGS BY 구문을 안쓰고 정렬하는 방법이 있을까요?


by 마농 [2014.04.17 08:58:07]

너무나도 오래전 게시글에 댓글을 다셨네요?

9i 에서도 order siblings by 구문은 정상 동작합니다.


by 일요일날오후 [2014.04.17 18:17:24]

아.. 혹시 사용하지 못했을때 대신해서 사용할 수 있는 쿼리가 있나해서요ㅠㅠ

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