;with t as (
          select 机构名称,机构代码,级数,上级代码 from 系统数据_机构信息 where 机构代码=2
          union all 
          select a.机构名称,a.机构代码,a.级数,a.上级代码 from 系统数据_机构信息 a 
          join t on t.机构代码 =a.上级代码) 
        select 机构代码 from t
上面那个问题不问了,用其他方式代替了。
现在问的这个问题,比如我通过上面的递归,获得了本部门及所属部门的“机构代码”
我如何将这个“机构代码”作为另一个条件?
比如: select * from a where 机构代码 in (上述得出的机构代码)

解决方案 »

  1.   


      ;with t as (
              select 机构名称,机构代码,级数,上级代码 from 系统数据_机构信息 where 机构代码=2
              union all 
              select a.机构名称,a.机构代码,a.级数,a.上级代码 from 系统数据_机构信息 a 
              join t on t.机构代码 =a.上级代码) 
           ---- select 机构代码 from t
       select * from 系统数据_机构信息 where 机构代码 in
       (select 机构代码 from t)
       直接放到子查询里不就可以啦