oracle10g connect by,Oracle10g新特性如何增强的CONNECTBY子句?

为了更好的查询一个树状结构的表,在Oracle的PL/SQL中提供乐一个诱人的特性——CONNECT BY子句。它大大的方便了我们查找树状表:遍历一棵树、寻找某个分支……,但还是存在一些不足。在Oracle 10G,就对这个特性做了增强。下面就举例说明一下:

CONNECT_BY_ROOT

一张表,有多颗子树(根节点为0),现在我想知道每个节点属于哪个子树。

举例:铃音目录结构下有多个大分类:中外名曲、流行经典、浪漫舞曲……,每个大类下面又有多个子类,子类下面还可以细分。那现在想要知道每个子类分属哪个大类,或者要统计每个大类下面有多少个子类。

看下面的例子,DIRINDEX分别为

1、

2、3的就是大分类,其他编号的都是子类或孙子类: select dirindex, fatherindex, RPAD(' ', 2*(LEVEL-1)) || dirname from t_tonedirlib

start with fatherindex = 0

connect by fatherindex = prior dirindex

DIRINDEX FATHERINDEX DIRNAME

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

1 0 中文经典

52 1 kkkkkkk

70 52 222

58 52 sixx

59 52 seven

69 52 uiouoooo

55 52 four

7 1 流行风云

8 1 影视金曲

1111 8 aaa

1112 8 bbb

1113 8 ccc

9 1 古典音乐

81 1 小熊之家

104 81 龙珠

105 81 snoppy

101 81 叮当1

102 81 龙猫

103 81 叮当2

2 0 热门流行

31 2 有奖活动

32 2 相约香格里拉

50 2 新浪彩铃

3 0 老歌回放

333 3 老电影

335 3 怀旧金曲

26 rows selected。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值