加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL递归查询

发布时间:2020-12-13 16:11:12 所属栏目:百科 来源:网络整理
导读:原料 -- 创建组织架构表 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 ‘

原料

--创建组织架构表
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,运营管理部);
View Code

向下递归

--向下递归
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

输出结果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读