GSI



위쪽의 쿼리 결과 리스트에서 보면 uid, puid, grade 등의 조직도를 구성할 수 있는 정보가 존재 할때
아래와 같은 결과를 만들어 낼 수 있다.

[쿼리예]
with empCTE(empUid, mgrName, dept, level)
as
(
 -- 보스
 select uid, puid, grade, 0
  from userList
  where puid is null and grade = '0'
 union all
-- 나머지 grade를 포함한 내용
 select aa.uid, aa.puid, aa.grade, bb.level+1
  from userList as aa inner join empCTE as bb
  on aa.puid = bb.empUid
 where bb.level < 3  -- 이 코드가 없어지면 모든 grade에 대해서 출력이 된다. 즉, grade를 제한할때 사용
)
select replicate('ㄴ', level) + empUid as uid, dept from empCTE order by empUid, level
Posted by gsi
: