id
pid
問題描述:
1
0
2
0
3
1
4
1
5
2
6
2
7
3
8
4
9
5
取出id為1及其下屬的所有的數據,結果為下
id
pid
1
0
3
1
4
1
7
3
8
4
SQL> CREATE TABLE TBL_TEST
2? (
3??? ID??? NUMBER,
4??? NAME? VARCHAR2(100 BYTE),
5??? PID?? NUMBER????????????????????????????????? DEFAULT 0
6? );
Table created
SQL> INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
1 row inserted
SQL> INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
1 row inserted
SQL> INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
1 row inserted
SQL> INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
1 row inserted
SQL> INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');
1 row inserted
SQL>
SQL> select * from TBL_TEST
2?? start with id=1
3?? connect by prior id = pid
4? /
ID NAME??????????????????????????????????????????????????????????????????????????????????? PID
---------- -------------------------------------------------------------------------------- ----------
1 10??????????????????????????????????????????????????????????????????????????????????????? 0
2 11??????????????????????????????????????????????????????????????????????????????????????? 1
5 121?????????????????????????????????????????????????????????????????????????????????????? 2
4 12??????????????????????????????????????????????????????????????????????????????????????? 1
SQL>
SQL> select * from TBL_TEST
2?? start with id=5
3?? connect by prior pid = id
4? /
ID NAME??????????????????????????????????????????????????????????????????????????????????? PID
---------- -------------------------------------------------------------------------------- ----------
5 121?????????????????????????????????????????????????????????????????????????????????????? 2
2 11??????????????????????????????????????????????????????????????????????????????????????? 1
1 10??????????????????????????????????????????????????????????????????????????????????????? 0