今天在项目当中做权限管理,有用到connect by 去查询这种层级关系,之前没怎么用,已经忘的差不多了,重新去查了一遍,在这做个笔记。
start with : 指定起始节点的条件
connect by: 指定父子行的条件关系
prior: 查询父行的限定符,格式: prior column1 = column2 或者
column1 = prior column2 and … ,
level :层级(表示当前处于第几层级)
1、首先,建一张组织机构表
p_orgn 字段代表父机构
orgn 字段代表子机构
orgn_name 代表机构名称
create table orgn_info(
p_orgn varchar2(20),
orgn varchar2(20),
orgn_name varchar2(30)
)
2、插入数据
insert into orgn_info o (o.p_orgn,o.orgn,o.orgn_name) values
('','300','火星总行');
insert into orgn_info o (o.p_orgn,o.orgn,o.orgn_name) values
('300','300301','火星分行');
insert into orgn_info o (o.p_orgn,o.orgn,o.orgn_name) values
('300301','300301311','火星1号营业室');
insert into orgn_info o (o.p_orgn,o.orgn,o.orgn_name) values