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