下载jdk 需要oracle账号Oracle层次查询和with函数的使用

Oracle层次查询和with函数的使用

 

开发中大家应该都做过什么类似部门管理这样的功能,一般情况下一个部门下面还有下一级部门(子部门),这个层级就类似一棵树。这种情况下一般会把父级部门和子级部门分成2个或者多个表,这种算是比较常规的做法;有时可能为了数据表管理的方便 就把所有的部门放在一张表里并加上一个字段标识部门之间的隶属关系,这oracle账号样子看起来有点奇怪,但凑合用用还是Ok的。下面我跟大家分享下我的心得,也就是基于这种设计怎么做数形图,简单的做法就是查询出一个list集合就可以,要怎么办呢先来看下我的数据表

 

 

不难看出部门之间用fparent关联,那sql语句怎么写呢,下面是一种偷懒的写法

 

[sql] -- ||是连接符,level可以看成常量  select t.fnum,LPAD(' ',3*level-3)||'|-'||fname fname,t.fparent,Level  lev  From m_depart t  --start with后面是条件1  start with fparent is null   --connect by Prior后面是条件2  connect by Prior fnum=fparent  

 

 

下面是查询结果,查询结果和数非常接近

此条目发表在oracle metalink账号分类目录,贴了标签。将固定链接加入收藏夹。