树形结构的同级排序

来源:互联网 发布:网络对我们的影响 编辑:程序博客网 时间:2024/04/28 20:38
查询的结果是按照mid和id的层次关系排好了序,但是我们希望在具有相同父亲的孩子之间按照name来排序,这样加上order siblings by name子句的查询结果如下:


SQL> select name,level,mid,id ,lpad(' ',level*2)||id level_id,SYS_CONNECT_BY_PATH(id,'/') path
2 ,CONNECT_BY_ROOT id root_id
3 from t_tree_query
4 start with mid in (0)
5 connect by prior id = mid
6 order siblings by name
7 ;


NAME LEVEL MID ID LEVEL_ID PATH ROOT_ID
---------- ---------- ---------- ---------- -------------------- --------------- ----------
level999 1 0 1 1 /1 1
level2 2 1 2 2 /1/2 1
level3 3 2 3 3 /1/2/3 1
level4 4 3 4 4 /1/2/3/4 1
level5 5 4 5 5 /1/2/3/4/5 1
level6_6 6 5 7 7 /1/2/3/4/5/7 1
level6_7 6 5 6 6 /1/2/3/4/5/6 1

level5 5 4 8 8 /1/2/3/4/8 1
level6 6 8 9 9 /1/2/3/4/8/9 1
level4 4 3 10 10 /1/2/3/10 1
level5_11 5 10 12 12 /1/2/3/10/12 1
0 0