[ Oracle - connect_by_isleaf  ]

 


 

 
정렬 을 위한 것 에서 사용 될때 마지막 레벨 에 해당 되는 녀석들 만 
조회 값이 '1' 로 조회할수 있게 하는 기능 이다. 
예를 들어 보자 
 
1
    2 -- leaf 에 해당되는 녀석
    3 -- leaf 에 해당되는 녀석
4
   5
       6 -- leaf 에 해당되는 녀석
       7 -- leaf 에 해당되는 녀석
8
   9
       10 -- leaf 에 해당되는 녀석

이런식으로 레벨 별로 디비에 저장 되어 있다고 하자 .
2,3,6,7,10 은 leaf 에 해당된다. 이녀석들은 조회시 
connect_by_isleaf 를 사용 해서 '1' 로 조회할수 있다. 그리고 leaf 가 아닌 녀석들은 '0' 으로 조회된다.
그럼 쿼리 를 만들어 보자 

select NUMBER
      ,CONNECT_BY_ISLEAF AS LEAF
 from NUMBER_ALL
 start with HI_NUMBER is null
 connect by prior NUMBER = HI_NUMBER

그럼 결과는 
NUMBER LEAF
1   0
2   1
3   1
4   0
5   0
6   1
7   1
8   0
9    0
10   1 

이런식으로 connect_by_isleaf 를 사용 하면 레벨 에 상관없이 마지막 하위 레벨의 number 들만 따로 조회 할수 있다. 

 

'(DB) Oracle > SQL.통계-Connect by' 카테고리의 다른 글

Oracle - wm_concat  (0) 2017.01.21
Oracle - Connect_By  (0) 2017.01.21
Posted by 농부지기
,