欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL 获取所有上级的实现方法

程序员文章站 2022-07-04 12:02:05
sql 获取所有上级的实现方法 说明: (1)可以做成一个函数,直接调用即可; (2) m0org 是数据库存在的表 ,m0orgpid 为目标表,orgid...

sql 获取所有上级的实现方法

说明:

(1)可以做成一个函数,直接调用即可;

(2) m0org 是数据库存在的表 ,m0orgpid 为目标表,orgid为id字段,pid为上级id字段

declare @orgid nvarchar(36)= '00000000-0000-0000-00000002205223459'; 
 
  --获取当前机构的所有上级 放入m0orgpid 
   with  m0orgpid 
        as ( select  *, 0 as lvl 
          from   m0org 
          where  orgid = @orgid 
          union all 
          select  d.*, lvl + 1 
          from   m0orgpid c 
          inner join m0org d on c.pid = d.orgid ) 
 
     select * from  m0orgpid; 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!