原料
--创建组织架构表 create table "Org"( "OrgId" character varying(50) primary key,"ParentId" character varying(50),"OrgName" character varying(50) ) --添加数据 insert into "Org" ("OrgId","ParentId","OrgName") values(‘00‘,null,‘***集团‘); insert into "Org" ("OrgId","OrgName") values(‘01‘,‘00‘,‘子公司01‘); insert into "Org" ("OrgId","OrgName") values(‘02‘,‘子公司02‘); insert into "Org" ("OrgId","OrgName") values(‘03‘,‘子公司03‘); insert into "Org" ("OrgId","OrgName") values(‘04‘,‘子公司04‘); insert into "Org" ("OrgId","OrgName") values(‘0101‘,‘01‘,‘电子商务部‘); insert into "Org" ("OrgId","OrgName") values(‘0102‘,‘渠道合作部‘); insert into "Org" ("OrgId","OrgName") values(‘0103‘,‘个人业务部‘); insert into "Org" ("OrgId","OrgName") values(‘0104‘,‘人力资源部‘); insert into "Org" ("OrgId","OrgName") values(‘0105‘,‘运营管理部‘); insert into "Org" ("OrgId","OrgName") values(‘0201‘,‘02‘,"OrgName") values(‘0202‘,"OrgName") values(‘0203‘,"OrgName") values(‘0204‘,"OrgName") values(‘0205‘,"OrgName") values(‘0301‘,‘03‘,"OrgName") values(‘0302‘,"OrgName") values(‘0303‘,"OrgName") values(‘0304‘,"OrgName") values(‘0305‘,"OrgName") values(‘0401‘,‘04‘,"OrgName") values(‘0402‘,"OrgName") values(‘0403‘,"OrgName") values(‘0404‘,"OrgName") values(‘0405‘,‘运营管理部‘);
向下递归
--向下递归 with recursive T ("OrgId","OrgName","Depth") AS ( select "OrgId",1 "Depth" from "Org" where "OrgId"=‘01‘ --起始节点 union all select D."OrgId",D."ParentId",D."OrgName",T."Depth" + 1 "Depth" from "Org" D join T on D."ParentId" = T."OrgId" ) select "OrgId","Depth" from T
输出结果:
向上递归
--向上递归 with recursive T ("OrgId",1 "Depth" from "Org" where "OrgId"=‘0105‘ --起始节点 union all select D."OrgId",T."Depth" + 1 "Depth" from "Org" D join T on D."OrgId" = T."ParentId" ) select "OrgId","Depth" from T
输出结果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。