根据权限控制组织机构树的部分(全部)显示引发的种种新“姿势”


select *
  from ORGANIZATION a
 where a.name 条件3
 START WITH a.code = '1' 条件1
CONNECT BY PRIOR a.code = a.parent_code 条件2
 order by a.sort ASC

  条件1 是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树。
      条件2 是连接条件,其中用PRIOR表示上一条记录,比如 CONNECT BY PRIOR org_id = parent_id;就是说上一条记录的org_id 是本条记录的parent_id,即本记录的父亲是上一条记录。
      条件3 是过滤条件,用于对返回的所有记录进行过滤。

 

  稍微整理了,下面的SQL是根据权限来展示,只需要传入code

select *
  from ORGANIZATION a 
 START WITH a.code = '具体的编码'
CONNECT BY PRIOR a.code = a.parent_code
order by a.sort ASC

 

这个SQL 是可以把查到的该函数可以把列值以","号分隔起来,并显示成一行,组成一个大字段clob的数据。

 

select wm_concat(code)
  from ORGANIZATION a 
 START WITH a.code = '103'
CONNECT BY PRIOR a.code = a.parent_code
 order by a.sort ASC

 

posted @ 2017-05-24 21:35  AmourOnce  阅读(839)  评论(0编辑  收藏  举报