본문 바로가기

SQL + PL/SQL/SQL

HIERACHICAL QUERY - 계층형 쿼리

계층형 쿼리 = Hierachical Query


명확하게 상하 관계를 보여주고 싶을 때 쓰는 쿼리


문법:

SELECT LPAD(칼럼이름,LEVEL*숫자,'채울문자')

FROM 테이블명

CONNECT BY PRIOR 칼럼1 = (PRIOR) 칼럼2 

START WITH 칼럼=값 ;



문법설명:

LEVEL*숫자 --> 출력할 바이트 길이

LEVEL은 해당 데이터가 몇번째 단계이냐를 의미하는 것

CONNECT BY절 --> 연결조건, 서로 어떻게 연결이 되야 하는가? (JOIN에서 WHERE절 쓰는거랑 비슷하다고 생각하면 될듯)

서브쿼리를 사용할 수는 없음

PRIOR --> 칼럼1에 두느냐 칼럼2에 두느냐가 중요,

해당 키워드가 설정되어 있는 칼럼에서 바로 이전의 데이터 값을 찾는다

쉽게 말해서 START WITH에서 쓴 처음조건부터 시작해서 이 조건의 PRIOR를 붙인 칼럼의 값을 찾아서 해당데이터를 출력 

START WITH --> 검색을 시작할 조건


두개 이상의 테이블을 쓸 때는 JOIN을 사용해 WHERE절을 추가해서 사용해도 된다.



예제들 캡쳐

'SQL + PL/SQL > SQL' 카테고리의 다른 글

SYNONYM  (0) 2013.01.13
SEQUENCE - 시퀀스  (0) 2013.01.13
VIEW - 뷰  (0) 2013.01.13
INDEX - 인덱스  (0) 2013.01.13
CONSTRAINT - 제약조건  (0) 2013.01.13