sql中ORDER SIBLINGS BY排序的含义
没有加ORDER SIBLINGS BY的时候:
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的时候:
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
SIBLINGS 是兄弟姐妹的意思,那么ORDER SIBLINGS BY的意思就是在兄弟姐妹之间的排序,和order by所表示的含义绝对不同,针对树状sql,我觉得ORDER SIBLINGS BY更有意义,树状sql查询出来的结果本身就是按照层次(hierarchy)结构排好序的,而加上关键字SIBLINGS 其实是在hierarchy内部进行排序。
树型查询中按同一级别(level相同,即:同一父节点下的直接子节点)排序,不加则可不能保证顺序。
层次查询-亲兄弟间的排序ORDER SIBLINGS BY
- 大小: 34.7 KB
- 大小: 25.6 KB
分享到:
相关推荐
`order siblings by`子句允许我们对同一级别的节点进行排序。在这个例子中,首先是`sort_index`字段,然后是`id`字段,确保了节点的逻辑顺序。 4. 另一个示例查询: `select id, name, parent_id from book_...
- **ORDER SIBLINGS BY 子句**:控制每个层次内记录的排序方式。 通过以上介绍可以看出,CTE在SQL查询中扮演着重要的角色,尤其是递归CTE的强大功能,使其成为处理复杂层次结构数据的首选工具。希望本文能帮助读者...
如果需要对同一父节点下的兄弟节点进行排序,可以使用`ORDER SIBLINGS BY`子句,如最后一个示例所示。 总的来说,`START WITH` 和 `CONNECT BY` 的组合使用能够有效地处理和展示具有层级关系的数据,它们允许我们以...
- **ORDER SIBLINGS BY**:按照指定顺序排列同级节点。 - **The NOCYCLE**:防止查询进入无限循环。 通过遵循以上SQL最佳实践,可以显著提高数据库应用的性能和可维护性。这些实践不仅适用于Oracle数据库,也可以...
在实际应用中,我们还可能遇到一些高级用法,如使用`NOCYCLE`选项防止无限循环,或者使用`ORDER SIBLINGS BY`来定义同级节点的排序规则。此外,还可以结合其他SQL语句,如`UNION ALL`、`WHERE`子句等,以满足更复杂...
- `ORDER SIBLINGS BY` 子句用于在每个层级内对兄弟节点进行排序。 - 可以使用`WHERE`子句在查询中添加额外的过滤条件,但要注意,`WHERE`子句应在`START WITH`之后,`CONNECT BY`之前,否则可能无法正确处理层级...
### Oracle中的递归查询详解 #### 一、引言 ...此外,结合`ORDER SIBLINGS BY`子句,还可以对查询结果进行排序,以满足不同场景的需求。希望本文能帮助读者更好地理解和应用Oracle中的递归查询技术。
- `ORDER SIBLINGS BY`:指定兄弟节点的排序方式。 4. **示例应用** - **组织结构查询**:假设我们有一个`employees`表,其中包含`employee_id`, `manager_id`和`name`字段,可以查询整个组织结构。 - **商品...
例如,`SELECT * FROM table START WITH condition CONNECT BY PRIOR id = parent_id ORDER SIBLINGS BY level`,这条查询将返回满足条件的记录,并按照它们的层次级别排序。 "查询位数补进"可能指的是使用`LPAD`或...
- 当ROWNUM与ORDER BY结合使用时,应确保ORDER BY出现在内部子查询中,ROWNUM出现在外部查询中,以确保正确的排序和限制。 #### NULL **空值的生成及特点:** - NULL表示未知或不存在的值。 - 在Oracle中,NULL与...