본문 바로가기

IT/oracle&mysql

[Oracle]Connect By 와 Order SIBLINGS 사용

SMALL

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를 활요하면 될듯하다.




LIST