Oracle의 간단한 트리 쿼리(재귀 쿼리), PRIOR 및 CONNECT_BY_ROOT 사용

1. 다음 스타일에는 5개의 트리 데이터 레이어가 있습니다. 이제 기본 레이어와 기본 레이어 아래의 모든 데이터를 필터링해야 합니다.


select *
  from AUTH_ORGANIZATION_TB t
 start with t.org_id = 32
connect by prior t.org_id = t.org_id_superior
 order by t.org_id_superior,org_id
실행 결과는 다음과 같습니다.

2. 위 그림과 같이 생산기술부서에서는 상위 2단계인 정제작업 부분에 대한 데이터를 확보해야 하는 것으로 알려져 있습니다.

select level,
       T.ORG_ID,
       T.ORG_ID_SUPERIOR,
       RPAD('_', (level - 1) * 6, '_') || T.U_NAME,
       CONNECT_BY_ROOT ORG_ID,
       CONNECT_BY_ROOT U_NAME_FULL,
       CONNECT_BY_ISLEAF
  from AUTH_ORGANIZATION_TB T
 start with T.ORG_ID_SUPERIOR = 32
connect by prior T.ORG_ID = T.ORG_ID_SUPERIOR

실행 결과는 다음과 같습니다.


추천

출처blog.csdn.net/yerongtao/article/details/70905537