Connect by / Order SIBLINGS
데이터를 게층형으로 처리하기 위한 Connect By 문장에 대한 설명을 하려고 한다.
START WITH 컬럼명] = [조건]
CONNECT BY [컬럼명] = PRIOR [컬럼명]
Connect by를 사용하기 위한 구조는
1. 부모의 컬럼과 자식의 컬럼이 존재해야 한다.
2. 부모의 데이터와 자식의 데이터가 매핑 되어야 한다.
3. Nstnrd ... [자식] , Upper...[부모] 라고 가정한다.
4. 보기와 같이 부모와 자식의 데이터가 서로 연결되어 있어야 한다.
[단순 조회]
단순 Select 조회 Sql 이다.
결과는 보는 바와 같이 적대되어 있는 데이터를 정렬없이 조회한결과이다.
부모와 자식의 데이터가 서로 정렬 되지 않은 형태이다.
[Connect by 조회]
Connect By 구문을 사용하여 부모와 자식의 데이터 별로 조회한다.
데이터가 맘에 들지 않는다 Connect by 를 사용했는데도 불구하고
데이터 정렬이 엉망인거 같다.
3행 과 6행 이후의 데이터가 서로 순차적으로 나오면 잘나온 것이다.
3행이 제일 부모 그이후부터 자식 데이터 들이 붙게 되는 구조를 바랬지만.. 안된다.
[Connect by 와 Order SIBLINGS 조회]
Connect By 를 사용한 SQl의 데이터를 원하는 결과물로 출력하기 위해
Order Siblings 를 사용하였다.
음.. 원하는 결과가 나왔다.
나온 결과를 가지고 Jstree , TreeGrid , TreeView를 활요하면 될듯하다.
'IT > oracle&mysql' 카테고리의 다른 글
pl/sql CLOB 데이터 파일 읽기 (0) | 2016.09.14 |
---|---|
pl/sql 파일 읽기/쓰기 (0) | 2016.09.14 |
Oracle Ansi 외부조인 (outer join) (0) | 2016.03.29 |
ORACLE 세션테이블 TEMPORARY TABLE 생성 (0) | 2016.03.23 |
ORACLE 계층형 데이터 SYS_CONNECT_BY_PATH (0) | 2016.03.23 |