`
Action-人生
  • 浏览: 104958 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

sql中ORDER SIBLINGS BY排序的含义

sql 
阅读更多
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
分享到:
评论

相关推荐

    Oracle递归SQL学习

    `order siblings by`子句允许我们对同一级别的节点进行排序。在这个例子中,首先是`sort_index`字段,然后是`id`字段,确保了节点的逻辑顺序。 4. 另一个示例查询: `select id, name, parent_id from book_...

    sql写法_CTE

    - **ORDER SIBLINGS BY 子句**:控制每个层次内记录的排序方式。 通过以上介绍可以看出,CTE在SQL查询中扮演着重要的角色,尤其是递归CTE的强大功能,使其成为处理复杂层次结构数据的首选工具。希望本文能帮助读者...

    start connect by

    如果需要对同一父节点下的兄弟节点进行排序,可以使用`ORDER SIBLINGS BY`子句,如最后一个示例所示。 总的来说,`START WITH` 和 `CONNECT BY` 的组合使用能够有效地处理和展示具有层级关系的数据,它们允许我们以...

    SQL最佳实践

    - **ORDER SIBLINGS BY**:按照指定顺序排列同级节点。 - **The NOCYCLE**:防止查询进入无限循环。 通过遵循以上SQL最佳实践,可以显著提高数据库应用的性能和可维护性。这些实践不仅适用于Oracle数据库,也可以...

    SQL 学习6

    在实际应用中,我们还可能遇到一些高级用法,如使用`NOCYCLE`选项防止无限循环,或者使用`ORDER SIBLINGS BY`来定义同级节点的排序规则。此外,还可以结合其他SQL语句,如`UNION ALL`、`WHERE`子句等,以满足更复杂...

    connect by的使用

    - `ORDER SIBLINGS BY` 子句用于在每个层级内对兄弟节点进行排序。 - 可以使用`WHERE`子句在查询中添加额外的过滤条件,但要注意,`WHERE`子句应在`START WITH`之后,`CONNECT BY`之前,否则可能无法正确处理层级...

    oracle递归、迭代

    ### Oracle中的递归查询详解 #### 一、引言 ...此外,结合`ORDER SIBLINGS BY`子句,还可以对查询结果进行排序,以满足不同场景的需求。希望本文能帮助读者更好地理解和应用Oracle中的递归查询技术。

    Oracle中的树状查询(递归查询)

    - `ORDER SIBLINGS BY`:指定兄弟节点的排序方式。 4. **示例应用** - **组织结构查询**:假设我们有一个`employees`表,其中包含`employee_id`, `manager_id`和`name`字段,可以查询整个组织结构。 - **商品...

    oracle-use.rar_Oracle drop use_oracle

    例如,`SELECT * FROM table START WITH condition CONNECT BY PRIOR id = parent_id ORDER SIBLINGS BY level`,这条查询将返回满足条件的记录,并按照它们的层次级别排序。 "查询位数补进"可能指的是使用`LPAD`或...

    ORACLE 合辑

    - 当ROWNUM与ORDER BY结合使用时,应确保ORDER BY出现在内部子查询中,ROWNUM出现在外部查询中,以确保正确的排序和限制。 #### NULL **空值的生成及特点:** - NULL表示未知或不存在的值。 - 在Oracle中,NULL与...

Global site tag (gtag.js) - Google Analytics