SQL 递归写法

 with reg as   
(   
    select id,name,upperId from region where id=2  
    union all   
    select r.id,r.name,r.upperId from reg  
    inner join region r on reg.id = r.upperId  
)   
select * from reg    



------项目实例



WITH    MDS_Hr_OrgEach ( objid1 )
          AS ( SELECT   objid AS 'objid1'
               FROM     dbo.MDS_Hr_Organization
               WHERE    objid = '50100001'
                        AND ObjType = 'o'
                        AND Deleted = 0
               UNION ALL
               SELECT   o.objid1
               FROM     MDS_Hr_OrgEach o2
                        INNER JOIN MDS_Hr_ObjRelation o ON o.ObjID2 = o2.objid1
                                                        AND o.Deleted = 0
               WHERE    o.ObjType2 = 'o'
                        AND o.ObjType1 = 'o'
             )
select * from MDS_Hr_OrgEach

猜你喜欢

转载自blog.csdn.net/qq_19872525/article/details/78860872