sql中ORDER SIBLINGS BY排序的含义

sql中ORDER SIBLINGS BY排序的含义

[b]没有加ORDER SIBLINGS BY的时候:[/b]
 SELECT y.* FROM
(
SELECT
m.id,m.name,m.parent_id,m.image,m.memo,m.status ,
t.id
operate_id,t.name operate_name
FROM t_module m
LEFT JOIN
t_module_operate t_m ON m.id=t_m.module_id
LEFT JOIN t_operate t ON
t.id=t_m.operate_id
) y
START WITH parent_id=-1
CONNECT BY PRIOR id=parent_id


[img]http://dl2.iteye.com/upload/attachment/0104/4222/9943bc0c-90ce-3b4f-90f2-75aad91adb74.png[/img]


[b]加了 ORDER SIBLINGS BY的时候:[/b]

SELECT y.* FROM
(
SELECT
m.id,m.name,m.parent_id,m.image,m.memo,m.status ,
t.id
operate_id,t.name operate_name
FROM t_module m
LEFT JOIN
t_module_operate t_m ON m.id=t_m.module_id
LEFT JOIN t_operate t ON
t.id=t_m.operate_id
) y
START WITH parent_id=-1
CONNECT BY PRIOR id=parent_id

ORDER SIBLINGS BY id


[img]http://dl2.iteye.com/upload/attachment/0104/4220/b3eec680-2a1d-3791-bb6d-07aa8892e0a1.png[/img]


SIBLINGS 是兄弟姐妹的意思,那么ORDER SIBLINGS BY的意思就是在兄弟姐妹之间的排序,和order by所表示的含义绝对不同,针对树状sql,我觉得ORDER SIBLINGS BY更有意义,树状sql查询出来的结果本身就是按照层次(hierarchy)结构排好序的,而加上关键字SIBLINGS 其实是在hierarchy内部进行排序。

树型查询中按同一级别(level相同,即:同一父节点下的直接子节点)排序,不加则可不能保证顺序。

层次查询-亲兄弟间的排序ORDER SIBLINGS BY
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值