♣ Tech & Biz Salon/Tech

connect by ~ order siblings by~

TasteGod 2009. 12. 3. 12:28

Order siblings by 구문소개를 위해 글 올립니다.


SELECT 회사코드, 조직코드, 부모조직코드, 랭킹 FROM 조직코드테이블
WHERE 회사코드 = 'A01003'
START WITH 부모조직코드 IS NULL
CONNECT BY PRIOR 조직코드 = 부모조직코드

--ORDER BY 랭킹
ORDER SIBLINGS BY 랭킹


랭킹 컬럼은 동일 부모를 가진 조직코드간의 랭킹값을 가지고 있습니다.


주석처리한 ORDER BY 랭킹 구문을 실행하면 쿼리결과에서의 Hierachy 가 깨진것을 확인할수 있습니다.

이런부분을 해소하기 위해 기존에는 관련한 pl-sql 오브젝트를 만들어 사용하는 등의 방법을 이용했던것 같기도 합니다.


9i 이후부터는 ORDER SIBLINGS BY 구문을 이용해 원하는 결과를 얻어낼 수 있습니다.


관련 URL

http://www.psoug.org/reference/connectby.html

  ==> 쿼리짤때 참고하는 좋은 사이트 입니다.