层次查询start with ... connect by

如:select distinct dep_id from t_sys_dep_dimensions start with dep_id = (select dept_id from t_sys_person where mdm_user_id='#userId#') connect by nocycle prior dep_id = parent_dep_id   ;

查找#userId#所在部门的子部门。

START WITH 定义数据行查询的初始起点;

nocycle 防止循环查找;

CONNECT BY

prior 定义表中的各个行是如何联系的;connect by 后面的"prior" 如果缺省,则只能查询到符合条件的起始行,并不进行递归查询;

prior在哪个字段前,表示查找哪个字段 (和等号左右无关)

connect by prior dep_id = parent_dep_id   connect by  parent_dep_id = prior dep_id      在parent_dep_id中查找dep_id

connect by dep_id = prior parent_dep_id      connect by prior parent_dep_id = dep_id   在dep_id中查找parent_dep_id

上一篇:Big Clock


下一篇:PAT 团体程序设计天梯赛-练习集 L1-008. 求整数段和