oracle父子关系树递归排序

2012-11-12
  数据库中常要处理父子关系的记录,在oracle中可以用查询语句一次把所有的子记录全部取出来。例如下:

  t1

  t11

  t111

  t1111

  t12

  t121

  t1211

  db数据字段如下:

  task_id task_name t.parent_task_id ***

  *** *** *** ***

  000001 t1 *** ***

  000002 t11 000001 ***

  000005 t12 000001 ***

  000003 t111 000002 ***

  000004 t1111 000003 ***

  000006 t121 000005 ***

  000007 t1211 000006 ***

  *** *** *** ***

  查询语句:

  select t.task_id ,t.task_name ,t.parent_task_id

  from t_task t

  start with task_id='000001'

  connect by prior task_id = parent_task_id;

  结果显示:

  task_id task_name t.parent_task_id

  000001 t1

  000002 t11 000001

  000003 t111 000002

  000004 t1111 000003

  000005 t12 000001

  000006 t121 000005

  000007 t1211 000006

  strat with 指定层次开始的条件,即是说满足这个条件的行即可以做为层次树的最顶层

  connect by prior指层之间的关联条件,即什么样的行是上层行的子行(自连接条件)

  select level ,id,name,parentid from temptable2

  connect by prior parentid(属于顶层的列)=id(子层的列) start with id =1

    考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。

    相关推荐

    Delphi5-隔行改变DBGrid网格颜色

    oracle中关于flashback闪回的介绍

    并行恢复standby数据库 提高恢复速度

分享到:
0
相关阅读
友情链接
© 2018 我考网 http://www.woexam.com 中国互联网举报中心 湘ICP备18023104号 京公网安备 11010802020116号
违法和不良信息举报:9447029@qq.com