开发中大家应该都做过什么类似部门管理这样的功能一般情况下一个部门下面还有下一级部门(子部门)这个层级就类似一棵树这种情况下一般会把父级部门 和子级部门分成个或者多个表这种算是比较常规的做法有时可能为了数据表管理的方便 就把所有的部门放在一张表里并加上一个字段标识部门之间的隶属关系这样子看起来有点奇怪但凑合用用还是Ok的下面我跟大家分享下我的心得也就是基 于这种设计怎么做数形图简单的做法就是查询出一个list集合就可以要怎么办呢先来看下我的数据表
不难看出部门之间用fparent关联那sql语句怎么写呢下面是一种偷懒的写法
复制代码 代码如下:
||是连接符
level可以看成常量
select t
fnum
LPAD(
*level
)||
|
||fname fname
t
fparent
Level lev
From m_depart t
start with后面是条件
start with fparent is null
connect by Prior后面是条件
connect by Prior fnum=fparent
下面是查询结果查询结果和数非常接近
差不多了下面还有一个比较常用的with函数一般做复杂查询可能会用到可以参考下面的文章