sqlserver递归

  表信息sqlserver递归_第1张图片      

要查询出节点super_code的对应的id值,下面是递归方法:

WITH m  AS ( 
            SELECT dept_id  id,  dept_code code,dept_name   label,CAST ('' AS VARCHAR(50))  parent,is_last leaf  
             FROM sys_dept       WHERE is_stop = '0' and comp_code= '1001' and super_code='-1'

            UNION ALL    

            SELECT c.dept_id id,c.dept_code code,c.dept_name label,CAST (m.id AS VARCHAR(50)) parent,c.is_last leaf 
            FROM sys_dept c inner join m on  c.super_code = m.code and is_stop = '0' and comp_code= '1001'
            )

select * from m

查询结果:

sqlserver递归_第2张图片

Oracle的递归方法,请查看以前发的博客点击链接--- 点我点我,带你飞,oracle递归

你可能感兴趣的:(sqlserver递归)