계층 구조를 가진 데이타를 뽑아보자!!!!
한 테이블 Table_1이 있다.
이 테이블은 objectID필드와 parentObjectID 필드를 갖고 있다.
두 필드에는 OBJECT_X(X는 정수형 숫자)형식의 데이터가 들어있다.
또, OBJECT_1이 하위 OBJECT_2를 가지고 OBJECT_2가 또 하위 OBJECT_3을 가진다고 가정하자. (OBJECT_2는 OBJECT_1의 자식 OBJECT라고 생각하면된다.)
여러 다른 OBJECT_X 형식의 데이터들이 테이블 내에 많이 있다고 가정하자.
이때 CONNECT BY와 START WITH를 이용하여 OBJECT_2와 그 상위, 또 그 상위, 또 그 상위...쭈우욱 해서 OBJECT_2를 갖는 최상위 OBJECT까지 계층구조로 뽑아내기 위해서는 아래와 같이 하면 된다.
SELECT *
FROM Table_1
CONNECT BY PRIOR objectID = parentObjectID
START WITH objectID = 'OBJECT_2'
-------
파란색 조건부의 순서가 바뀌면 결과도 바뀌므로 주의하자.!!!!
[SQL] COUNT(*) 와 COUNT(1) (0) | 2015.04.20 |
---|---|
java.lang.SecurityException: Sealing violation exception (0) | 2015.04.20 |
[SQL] 결과가 두줄 이상인 경우 한줄로 합치기 (0) | 2015.04.20 |
[SQL] 조인(join)에 관하여 (0) | 2015.04.20 |
락걸린 세션 죽이기 (0) | 2015.04.20 |