리커시브구조 쿼리를 하려고 합니다.
CREATE TABLE PROGRESS (
CHILD_ID INTEGER, //자식아이디
NAME CHAR(10), //자식명
MOTHER_ID INTEGER, //부모아이디
LEVEL INTEGER); //단계
INSERT INTO PROGRESS VALUES (1,'A',null , 1);
INSERT INTO PROGRESS VALUES (2, 'B1', 1, 2);
INSERT INTO PROGRESS VALUES (3, 'B2', 1, 2);
INSERT INTO PROGRESS VALUES (4, 'C1', 2, 3);
INSERT INTO PROGRESS VALUES (5,'E',null , 1);
INSERT INTO PROGRESS VALUES (6, 'F1', 5, 2);
INSERT INTO PROGRESS VALUES (7, 'G1', 6, 3);
select n1.name as "MOTHER", n2.name as "CHILD", n2.level
from PROGRESS n1, PROGRESS n2
where n1.CHILD_ID = n2.MOTHER_ID
MOTHER | CHILD | level
------------+------------+-------
A | B1 | 2
A | B2 | 2
B1 | C1 | 3
E | F1 | 2
F1 | G1 | 3
이렇게 데이터가 나옵니다. 덩어리끼리 하나씩 묶어서 이렇게 나오는
것은 맞은데요. A와 E의 순서를 바꾸려면(덩어리 순서를 정렬하려면) 어떻게 하는건가요??
그리고 이 쿼리는 불안한 쿼리인것 같아요?? 쿼리데이터가 흔들리거든요..
함수나 프로시져로 리커시브 쿼리하는 예제없을까요??
많은 성원 부탁드립니다.
|