当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
递归查询查出层次树完整路径(二)
发布时间:2010/12/1 16:50:35 来源:www.xue.net 编辑:城市总裁吧
     在 Oracle 10g  中,还有其他更多关于层次查询的新特性 。例如,有的时候用户更关心的是每个层次分支中等级最低的内容。那么你就可以利用伪列函数 CONNECT_BY_ISLEAF来判断当前行是不是叶子。如果是叶子就会在伪列中显示“1”,如果不是叶子而是一个分支(例如当前内容是其他行的父亲)就显示“0”。下给出了一个关于这个函数使用的例子:

  select connect_by_isleaf,sys_connect_by_path(child,"/") path

  from hier

  start with parent is null

  connect by prior child = parent;

  CONNECT_BY_ISLEAF PATH

  ---------------------------------- ------------

  0 /Asia

  0 /Asia/China

  1 /Asia/China/Beijing

  0 /Asia/Japan

  1 /Asia/Japan/Osaka

  1 /Asia/Japan/Tokyo

  0 /Australia

  0 /Australia/New South Wales

  1 /Australia/New South Wales/Sydney

  0 /Europe

  0 /Europe/United Kingdom

  0 /Europe/United Kingdom/England

  1 /Europe/United Kingdom/England/London

  0 /North America

  0 /North America/Canada

  0 /North America/Canada/Ontario

  1 /North America/Canada/Ontario/Ottawa

  1 /North America/Canada/Ontario/Toronto

  0 /North America/USA

  0 /North America/USA/California

  1 /North America/USA/California/Redwood Shores

  在Oracle 10g 中还有一个新操作——CONNECT_BY_ROOT。 它用在列名之前用于返回当前层的根节点。如下面的例子,我可以显示出层次结构表中当前行数据所对应的最高等级节点的内容。

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved