求一条查询层次结构的ORCAL 查询语句~~~~~~
测试表创建语句:
CREATE TABLE TEST_QUERY
(
ID VARCHAR2(10),--ID
PID VARCHAR2(10),----父文件夹ID
NAME VARCHAR2(100),----文件夹名称
IS_FOLDER NUMBER(1)-- 1:文件夹,0:文件
)
INSERT INTO TEST_QUERY VALUES('0000','0','A',1);
INSERT INTO TEST_QUERY VALUES('0001','0000','A01',1);
INSERT INTO TEST_QUERY VALUES('0002','0000','A02',1);
INSERT INTO TEST_QUERY VALUES('0003','0000','A03',1);
INSERT INTO TEST_QUERY VALUES('0007','0003','A03-01',0);
INSERT INTO TEST_QUERY VALUES('0008','0003','A03-02',0);
INSERT INTO TEST_QUERY VALUES('0009','0003','A03-03',0);
INSERT INTO TEST_QUERY VALUES('0004','0000','A04',0);
INSERT INTO TEST_QUERY VALUES('0005','0000','A05',0);
INSERT INTO TEST_QUERY VALUES('0006','0000','A06',0);
INSERT INTO TEST_QUERY VALUES('0010','0006','A06-01',0);
INSERT INTO TEST_QUERY VALUES('0011','0006','A06-02',0);
INSERT INTO TEST_QUERY VALUES('0012','0006','A06-03',1);
INSERT INTO TEST_QUERY VALUES('0013','0012','A06-03-01',0);
INSERT INTO TEST_QUERY VALUES('0014','0012','A06-03-02',0);
INSERT INTO TEST_QUERY VALUES('0015','0012','A06-03-03',0);
情景:不知道一个文件夹里面有多少个文件 和多少个文件夹
求查询的语句实现如下功能:
输入一个父ID,然后就把他下面的所有文件和文件夹的层次关系全部查询出来,得到类似于下面的结果
ID, PID NAME IS_FOLDER LEVEL
0000 0 A 1 1
0001 0000 A01 1 2
0002 0000 A02 1 2
0003 0000 A03 1 2
0007 0003 A03-01 0 3
………………
这个用下面的语句实现出来了:
SELECT TEST_QUERY.*,LEVEL
FROM TEST_QUERY
where 1=1
START WITH TEST_QUERY.PID = '0'
CONNECT BY PRIOR TEST_QUERY.ID = TEST_QUERY.PID
但是如果我想要0003下面的文件夹和文件信息,就查不出来了
在where后面加PID条件 或者 START WITH 后面的PID改成0003都不行
请高手帮帮忙,有其他的办法吗
比如给的条件PID是0006,那么想要的结果就是
ID, PID NAME IS_FOLDER LEVEL
0006 0000 A06 1 1
0010 0006 A06-01 0 2
0011 0006 A06-02 0 2
0012 0006 A06-03 1 2
0013 0012 A03-03-01 0 3
0014 0012 A03-03-02 0 3
0015&nb