Oracle:树查询及相关函数
Oracle树查询的最重要的就是select...start with... connect by ...prior 语法了。依托于该语法,我们可以将一个表形结构的中以树的顺序列出来。
create table SECURITY_RES_CATEGORY( ID NUMBER(6) not null, NAME VARCHAR2(100), DESCRIPTION VARCHAR2(200), PARENT_ID NUMBER(6), APP_ID NUMBER(3), STATUS NUMBER(1) default 1)

select * from security_res_category where parent_id=361

select * from security_res_category where app_id=181 START WITH ID=361 CONNECT BY parent_id = PRIOR ID;

SELECT b.* FROM security_res_category a JOIN security_res_category b ON a.parent_id = b.ID WHERE a.ID = 261;

SELECT * FROM security_res_category START WITH ID = 363 CONNECT BY PRIOR parent_id = ID;

select * from security_res_category where parent_id=(select parent_id from security_res_category where id=363)

SELECT SYS_CONNECT_BY_PATH (mc, '/') FROM security_res_category WHERE ID = 6498 START WITH parent_id=0 CONNECT BY parent_id = PRIOR ID

SELECT CONNECT_BY_ROOT name, security_res_category.* FROM security_res_category where id=363 START WITH parent_id=0 CONNECT BY PRIOR id = parent_id;

SELECT CONNECT_BY_ISLEAF, security_res_category.* FROM security_res_category where id=963 START WITH parent_id=0 CONNECT BY parent_id = PRIOR ID;
