Oracle层次查询和with函数的使用
来源:互联网 发布:js改变body的display 编辑:程序博客网 时间:2024/06/06 01:25
开发中大家应该都做过什么类似部门管理这样的功能,一般情况下一个部门下面还有下一级部门(子部门),这个层级就类似一棵树。这种情况下一般会把父级部门和子级部门分成2个或者多个表,这种算是比较常规的做法;有时可能为了数据表管理的方便 就把所有的部门放在一张表里并加上一个字段标识部门之间的隶属关系,这样子看起来有点奇怪,但凑合用用还是Ok的。下面我跟大家分享下我的心得,也就是基于这种设计怎么做数形图,简单的做法就是查询出一个list集合就可以,要怎么办呢先来看下我的数据表
不难看出部门之间用fparent关联,那sql语句怎么写呢,下面是一种偷懒的写法
-- ||是连接符,level可以看成常量select t.fnum,LPAD(' ',3*level-3)||'|-'||fname fname,t.fparent,Level levFrom m_depart t--start with后面是条件1start with fparent is null --connect by Prior后面是条件2connect by Prior fnum=fparent
下面是查询结果,查询结果和数非常接近
差不多了下面还有一个比较常用的with函数,一般做复杂查询可能会用到,可以参考下面的文章
http://www.cnblogs.com/booolee/archive/2009/09/15/1566827.html
- Oracle层次查询和with函数的使用
- Oracle层次查询和分析函数
- ORACLE--Connect By、Level、Start With的使用(Hierarchical query-层次查询)
- ORACLE--Connect By、Level、Start With的使用(Hierarchical query-层次查询)
- ORACLE--Connect By、Level、Start With的使用(Hierarchical query-层次查询)
- ORACLE--Connect By、Level、Start With的使用(Hierarchical query-层次查询)
- 层次化查询 ,使用connect by 和start with 子句
- oracle的层次查询
- oracle的层次查询
- oracle层次查询的陷阱
- mysql的逆袭:如何做oracle的start with connect by prior递归层次查询
- 用于层次查询的伪列和函数
- SQL with as 的用法 以及递归函数的写法 递归层次查询
- Oracle层次查询及应用(start with connect by)
- Oracle层次查询及应用(start with connect by)
- 层次化查询start with...connect by prior... -Oracle
- SQL:oracle 层次查询 start with connect by
- oracle start with函数的使用
- Build openssl with just RSA and AES
- 黑马程序员--java集合TreeSet
- 对象克隆-深复制-浅复制
- 图之prim算法
- 我们该如何设计数据库(二)
- Oracle层次查询和with函数的使用
- 黑马程序员 常用的一些小算法
- Linux进程同步之POSIX信号量
- C3P0连接池使用小结
- C#打印杨辉三角实例
- Linear Work Suffix Array Construction
- 编程珠玑第一章
- c和指针
- 进程和线程