Oralce之递归算法
Oracle递归算法的经典用途,比如 多级部门下,子部门不能作为父部门的父部门。
有点拗口,比方说吧,爸爸部门下有甲儿子部门和乙儿子部门,甲或乙儿子部门不能成为爸爸部门的上级部门。
这个是很多管理系统的多级分类下的经典需求。
好吧。给出部门表结构--Department。
- Name Type Nullable Default Comments
- ---------- ------------- -------- ------- --------
- ID NUMBER(12) --ID
- DEPT_NO VARCHAR2(32) Y --部门编号
- COMPANY_NO VARCHAR2(4) Y --区域
- NAME VARCHAR2(128) Y --名字
- PARENT_NO VARCHAR2(32) Y --父部门编号
判断子部门是否能成为爸爸部门的上级部门,采用到了递归。SQL:
- SELECT COUNT(*) FROM (SELECT D.DEPT_NO,D.PARENT_NO FROM Department D
- CONNECT BY PRIOR D.DEPT_NO = D.PARENT_NO
- START WITH D.DEPT_NO = #deptNo# ) t where t.DEPT_NO = #parentNo#
如果返回值等于1,则子部门不能成为爸爸部门的上级部门;如果返回值不等于1,反之。
相关推荐
steeven 2020-11-10
Tips 2020-10-14
nongfusanquan0 2020-08-18
yedaoxiaodi 2020-07-26
清溪算法君老号 2020-06-27
pengkingli 2020-06-25
yishujixiaoxiao 2020-06-25
清溪算法 2020-06-21
RememberMePlease 2020-06-17
nurvnurv 2020-06-05
SystemArchitect 2020-06-02
码墨 2020-05-29
清溪算法 2020-05-27
choupiaoyi 2020-05-27
清溪算法 2020-05-25
bluewelkin 2020-05-19
dbhllnr 2020-05-15
steeven 2020-05-09
baike 2020-05-09