查找树的指定层级_【DB笔试面试478】树形查询(层次查询)可用于哪些场景?...

答案部分

在实际开发中,如果表中数据具有逻辑上的层次结构,那么可以使用层次查询以更直观地显示查询结果(包括数据本身以及数据之间的层次关系)。树形结构的关系可以控制遍历树的方向,是自上而下,还是自下而上,还可以确定层次的开始点(ROOT)的位置。层次查询语句正是从这两个方面来确定的,START WITH确定开始点,CONNECT BY确定遍历的方向。

树形结构的数据存放在表中,数据之间的层次关系即父子关系,通过表中的列与列间的关系来描述,例如EMP表中的EMPNO和MGR列。EMPNO表示该雇员的编号,MGR表示该雇员领导的编号,即子结点的MGR值等于父结点的EMPNO值。在表的每一行中都有一个表示父结点的MGR(除根结点外),通过每个结点的父结点,就可以确定整个树结构。

层次查询的基本语法格式如下所示:

SELECT

FROM

[WHERE ]

[START WITH ]

CONNECT BY  PRIOR当前表字段=级联表字段

在使用层次查询的过程中,需要注意以下几点内容:

1、层次查询是通过START WITH和CONNECT BY子句标识的。

2、其中,LEVEL关键字是可选的,表示等级,代表树的第几层。对根结点来说,LEVEL返回1,根结点的子结点返回2,以此类推。LEVEL是层次查询的一个伪列,如果有LEVEL,那么必须有CONNECT BY,而START WITH可以没有。利用CONNECT BY可以快速构造数据,例如SQL语句“SELECT LEVEL FROM DUAL CONNEC

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值